func userFromReader(r io.Reader, user *goth.User) error { u := struct { Country string `json:"country"` DisplayName string `json:"display_name"` Email string `json:"email"` ID string `json:"id"` Images []struct { URL string `json:"url"` } `json:"images"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Name = u.DisplayName user.Email = u.Email user.UserID = u.ID user.Location = u.Country if len(u.Images) > 0 { user.AvatarURL = u.Images[0].URL } return nil }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { Data struct { ID string `json:"id"` UserName string `json:"username"` FullName string `json:"full_name"` ProfilePicture string `json:"profile_picture"` Bio string `json:"bio"` Website string `json:"website"` Counts struct { Media int `json:"media"` Follows int `json:"follows"` FollowedBy int `json:"followed_by"` } `json:"counts"` } `json:"data"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Name = u.Data.UserName user.NickName = u.Data.UserName user.AvatarURL = u.Data.ProfilePicture user.Description = u.Data.Bio return err }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { ID string `json:"uuid"` Links struct { Avatar struct { URL string `json:"href"` } `json:"avatar"` } `json:"links"` Email string `json:"email"` Username string `json:"username"` Name string `json:"display_name"` Location string `json:"location"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Name = u.Name user.NickName = u.Username user.AvatarURL = u.Links.Avatar.URL user.UserID = u.ID user.Location = u.Location return err }
func populateUser(userMap map[string]interface{}, user *goth.User) error { user.Email = stringValue(userMap["email"]) user.Name = stringValue(userMap["full_name"]) user.NickName = stringValue(userMap["full_name"]) user.UserID = strconv.FormatFloat(userMap["id"].(float64), 'f', -1, 64) user.Location = stringValue(userMap["location"]) return nil }
// [Private] userFromReader will decode the json user and set the // *goth.User attributes func userFromReader(reader io.Reader, user *goth.User) error { u := struct { ID string `json:"id"` Email string `json:"email"` Name string `json:"fullname"` FirstName string `json:"first_name"` LastName string `json:"last_name"` NickName string `json:"username"` Description string `json:"description"` AvatarURL string `json:"avatar_720_url"` Location string `json:"city"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.UserID = u.ID user.Email = u.Email user.Name = u.Name user.FirstName = u.FirstName user.LastName = u.LastName user.NickName = u.NickName user.Description = u.Description user.AvatarURL = u.AvatarURL user.Location = u.Location return nil }
// FetchUser will go to Twitter and access basic information about the user. func (p *Provider) FetchUser(session goth.Session) (goth.User, error) { user := goth.User{ Provider: p.Name(), } sess := session.(*Session) response, err := p.consumer.Get( endpointProfile, map[string]string{"include_entities": "false", "skip_status": "true"}, sess.AccessToken) if err != nil { return user, err } defer response.Body.Close() bits, err := ioutil.ReadAll(response.Body) err = json.NewDecoder(bytes.NewReader(bits)).Decode(&user.RawData) if err != nil { return user, err } user.Name = user.RawData["name"].(string) user.NickName = user.RawData["screen_name"].(string) user.Description = user.RawData["description"].(string) user.AvatarURL = user.RawData["profile_image_url"].(string) user.UserID = user.RawData["id_str"].(string) user.Location = user.RawData["location"].(string) user.AccessToken = sess.AccessToken.Token user.AccessTokenSecret = sess.AccessToken.Secret return user, err }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Email string `json:"email"` UserName string `json:"user_name"` ID int `json:"user_id"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.UserName user.UserID = strconv.Itoa(u.ID) return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"name"` Email string `json:"email"` ID string `json:"id"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.Name user.UserID = u.ID return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"name"` Email map[string]string `json:"emails"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email["account"] user.Name = u.Name user.NickName = u.Name user.UserID = u.Email["account"] //onedrive doesn't provide separate user_id return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"first_name"` Email string `json:"email"` ID string `json:"uuid"` AvatarURL string `json:"picture"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.Name user.UserID = u.ID user.AvatarURL = u.AvatarURL return nil }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { ID string `json:"id"` Email string `json:"email"` Name string `json:"name"` FirstName string `json:"given_name"` LastName string `json:"family_name"` Link string `json:"link"` Picture string `json:"picture"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Name = u.Name user.FirstName = u.FirstName user.LastName = u.LastName user.NickName = u.Name user.Email = u.Email //user.Description = u.Bio user.AvatarURL = u.Picture user.UserID = u.ID //user.Location = u.Location.Name return err }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"name"` Email string `json:"email"` Nickname string `json:"display_name"` AvatarURL string `json:"logo"` Description string `json:"bio"` ID int `json:"_id"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Name = u.Name user.Email = u.Email user.NickName = u.Nickname user.Location = "No location is provided by the Twitch API" user.AvatarURL = u.AvatarURL user.Description = u.Description user.UserID = strconv.Itoa(u.ID) return nil }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { ID string `json:"id"` Email string `json:"email"` Bio string `json:"bio"` Name string `json:"name"` Link string `json:"link"` Picture struct { Data struct { URL string `json:"url"` } `json:"data"` } `json:"picture"` Location struct { Name string `json:"name"` } `json:"location"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Name = u.Name user.NickName = u.Name user.Email = u.Email user.Description = u.Bio user.AvatarURL = u.Picture.Data.URL user.UserID = u.ID user.Location = u.Location.Name return err }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { ID string `json:"id"` Email string `json:"emailAddress"` FirstName string `json:"firstName"` LastName string `json:"lastName"` Headline string `json:"headline"` PictureURL string `json:"pictureUrl"` Location struct { Name string `json:"name"` } `json:"location"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Name = u.FirstName + " " + u.LastName user.NickName = u.FirstName user.Email = u.Email user.Description = u.Headline user.AvatarURL = u.PictureURL user.UserID = u.ID user.Location = u.Location.Name return err }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { ID int `json:"id"` Email string `json:"email"` Bio string `json:"bio"` Name string `json:"name"` Login string `json:"login"` Picture string `json:"avatar_url"` Location string `json:"location"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Name = u.Name user.NickName = u.Login user.Email = u.Email user.Description = u.Bio user.AvatarURL = u.Picture user.UserID = strconv.Itoa(u.ID) user.Location = u.Location return err }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"full_name"` NickName string `json:"username"` ID int `json:"id"` AvatarURL string `json:"avatar_url"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } //Soundcloud does not provide the email_id user.Name = u.Name user.NickName = u.NickName user.UserID = strconv.Itoa(u.ID) user.AvatarURL = u.AvatarURL return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"name"` Location string `json:"postal_code"` Email string `json:"email"` ID string `json:"user_id"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.Name user.NickName = u.Name user.UserID = u.ID user.Location = u.Location return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"name"` Location string `json:"address"` Email string `json:"login"` AvatarURL string `json:"avatar_url"` ID string `json:"id"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.Name user.NickName = u.Name user.UserID = u.ID user.Location = u.Location return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"name"` Address struct { Locality string `json:"locality"` } `json:"address"` Email string `json:"email"` ID string `json:"user_id"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.Name user.UserID = u.ID user.Location = u.Address.Locality return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"name"` Email string `json:"email"` NickName string `json:"username"` ID int `json:"id"` AvatarURL string `json:"avatar_url"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.Name user.NickName = u.NickName user.UserID = strconv.Itoa(u.ID) user.AvatarURL = u.AvatarURL return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"display_name"` NameDetails struct { NickName string `json:"familiar_name"` } `json:"name_details"` Location string `json:"country"` Email string `json:"email"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.Name user.NickName = u.NameDetails.NickName user.UserID = u.Email // Dropbox doesn't provide a separate user ID user.Location = u.Location return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Name string `json:"display_name"` NickName string `json:"nick_name"` Location string `json:"addr_country"` Email string `json:"email"` AvatarURL string `json:"photos.picture"` ID string `json:"user_id"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email user.Name = u.Name user.NickName = u.Name user.UserID = u.ID user.Location = u.Location return nil }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { Account struct { DropletLimit int `json:"droplet_limit"` Email string `json:"email"` UUID string `json:"uuid"` EmailVerified bool `json:"email_verified"` Status string `json:"status"` StatusMessage string `json:"status_message"` } `json:"account"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Email = u.Account.Email user.UserID = u.Account.UUID return err }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { User struct { Avatar string `json:"avatar"` Country string `json:"country"` FullName string `json:"fullName"` DisplayName string `json:"displayName"` } `json:"user"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Location = u.User.Country user.Name = u.User.FullName user.NickName = u.User.DisplayName user.AvatarURL = u.User.Avatar return err }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { User struct { NickName string `json:"name"` ID string `json:"id"` Profile struct { Email string `json:"email"` Name string `json:"real_name"` AvatarURL string `json:"image_32"` } `json:"profile"` } `json:"user"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.User.Profile.Email user.Name = u.User.Profile.Name user.NickName = u.User.NickName user.UserID = u.User.ID user.AvatarURL = u.User.Profile.AvatarURL return nil }
func userFromReader(reader io.Reader, user *goth.User) error { u := struct { ID string `json:"id"` Email string `json:"email"` Name string `json:"name"` Link string `json:"link"` Avatar struct { URL string `json:"image_url"` } `json:"avatar"` }{} err := json.NewDecoder(reader).Decode(&u) if err != nil { return err } user.Name = u.Name user.FirstName, user.LastName = splitName(u.Name) user.Email = u.Email user.AvatarURL = u.Avatar.URL user.UserID = u.ID return err }
func emailFromReader(reader io.Reader, user *goth.User) error { e := struct { Values []struct { Email string `json:"email"` } `json:"values"` }{} err := json.NewDecoder(reader).Decode(&e) if err != nil { return err } if len(e.Values) > 0 { user.Email = e.Values[0].Email } return err }
// FetchUser will go to LastFM and access basic information about the user. func (p *Provider) FetchUser(session goth.Session) (goth.User, error) { sess := session.(*Session) user := goth.User{ AccessToken: sess.AccessToken, Provider: p.Name(), } u := struct { XMLName xml.Name `xml:"user"` ID string `xml:"id"` Name string `xml:"name"` RealName string `xml:"realname"` URL string `xml:"url"` Country string `xml:"country"` Age string `xml:"age"` Gender string `xml:"gender"` Subscriber string `xml:"subscriber"` PlayCount string `xml:"playcount"` Playlists string `xml:"playlists"` Bootstrap string `xml:"bootstrap"` Registered struct { Unixtime string `xml:"unixtime,attr"` Time string `xml:",chardata"` } `xml:"registered"` Images []struct { Size string `xml:"size,attr"` URL string `xml:",chardata"` } `xml:"image"` }{} login := session.(*Session).Login err := p.request(false, map[string]string{"method": "user.getinfo", "user": login}, &u) if err == nil { user.Name = u.RealName user.NickName = u.Name user.AvatarURL = u.Images[3].URL user.UserID = u.ID user.Location = u.Country } return user, err }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Email string `json:"email"` Name string `json:"display_name"` AvatarURL string `json:"business_logo"` ID string `json:"id"` Address struct { Location string `json:"city"` } `json:"support_address"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = u.Email //email is not provided by yahoo user.Name = u.Name user.NickName = u.Name user.UserID = u.ID user.Location = u.Address.Location user.AvatarURL = u.AvatarURL return nil }
func userFromReader(r io.Reader, user *goth.User) error { u := struct { Profile struct { NickName string `json:"nickname"` Location string `json:"location"` ID string `json:"guid"` Image struct { ImageURL string `json:"imageURL"` } `json:"image"` } `json:"profile"` }{} err := json.NewDecoder(r).Decode(&u) if err != nil { return err } user.Email = "" //email is not provided by yahoo user.Name = u.Profile.NickName user.NickName = u.Profile.NickName user.UserID = u.Profile.ID user.Location = u.Profile.Location user.AvatarURL = u.Profile.Image.ImageURL return nil }