Подтвердить что ты не робот

Поиск URL-адреса изображения профиля google при входе пользователя в систему с использованием Google OpenID-провайдера

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

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

любая подсказка?

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

  • попытайтесь загрузить http://profiles.google.com/s2/photos/profile/me?sz=32 (sz - размер изображения)
  • Если загрузка не удалась, используйте фиктивный значок google
  • Я также заметил, что если после показа аватара я вхожу в систему с другой учетной записью 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>");
    

Ответ 3

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

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

Устанавливает XML файл. Затем вы можете получить содержимое <thumbnailUrl> , который, в свою очередь, является эскизом эскиза профиля.

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

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

Ответ 4

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

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

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