Поиск URL-адреса изображения профиля Google, когда пользователь вошел в систему с помощью OpenID-провайдера Google. - PullRequest
12 голосов
/ 23 октября 2010

есть ли способ найти изображение профиля пользователя, который вошел в систему, используя свою учетную запись Google (через OpenID).

Я проверил stackoverflow и похоже, что они используют сервис gravatar для назначения аватара на адрес электронной почты.но должно быть возможно получить изображение профиля пользователя Google непосредственно из Google.

есть подсказка?

Ответы [ 4 ]

12 голосов
/ 05 марта 2011

Это невозможно только с OpenId.У вас есть два решения:

  • Вы используете не изображение Google, а изображение, предоставленное третьей стороной, такой как Gravatar (это самый простой способ и тот, который используется в Stackoverflow);

  • Вы используете API профилей Google Apps : см. там для получения фотографии.В этом случае пользователь должен пройти аутентификацию, например, с помощью протокола Oauth : см. Документацию Google там .Если вы выберете это решение, я полагаю, что вы продолжите использовать OpenId, поэтому вы будете использовать и OpenId, и Oauth.Google поддерживает гибридный протокол для упрощения этого процесса: гибридный протокол OpenId + OAuth .

Надеюсь, это поможет ...

12 голосов
/ 23 октября 2012

ОБНОВЛЕНО: в настоящее время этот подход не работает

В настоящее время я использую этот подход:

  1. попробуйте загрузить http://profiles.google.com/s2/photos/profile/me?sz=32 (sz - размер изображения)
  2. если загрузка не удалась, используйте фиктивную иконку Google
  3. Я также заметил, что если после отображения аватара я войду в систему с другой учетной записью Google, изображение аватара все еще будет старым.Чтобы избежать этого, я добавляю "& cache_fix =" к URL-адресу изображения.

    $(".social_avatar")
        .load(function() { $(".social_avatar").css('visibility', 'visible'); })
        .error(function() { $(".social_avatar").attr('src', "/dummy_google_icon.png"); })
        .css('visibility', 'hidden')
        .attr("src", "http://profiles.google.com/s2/photos/profile/me?sz=32&cache_fix=<userid>");
    
1 голос
/ 03 марта 2011

РЕДАКТИРОВАТЬ: это больше не будет работать, потому что Google Buzz больше не поддерживается Я держал ответ здесь только в исторических целях.

https://www.googleapis.com/buzz/v1/people/[your google account name]/@self

Возвращает файл XML. Затем вы можете получить содержимое тега , который, в свою очередь, является URL-адресом миниатюры профиля.

Обратите внимание, что пользователь должен войти в систему, чтобы это работало.

Надеюсь, это поможет

0 голосов
/ 31 июля 2016

Существует API, предоставленный http://www.avatarapi.com/, который возвращает имя пользователя и фотографию профиля с адреса электронной почты на основе общедоступной информации Google.

Его можно вызвать через SOAP или HTTP в этой конечной точке API: http://www.avatarapi.com/avatar.asmx

Одним из преимуществ этого API является то, что он не требует аутентификации пользователя в Google, однако в вашем случае вы сказали, что пользователь уже вошел в систему, поэтому это может не относиться к вам.

...