Поиск URL-адреса изображения профиля google при входе пользователя в систему с использованием Google OpenID-провайдера
есть способ найти образ профиля пользователя, который вошел в систему, используя свою учетную запись google (через OpenID).
Я проверил stackoverflow, и кажется, что они используют службу gravatar для назначения аватара на адрес электронной почты. но должно быть возможно получить изображение профиля google пользователя непосредственно из Google.
любая подсказка?
Ответы
Ответ 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, однако в вашем случае вы сказали, что пользователь уже зарегистрирован, поэтому это может не относиться к вам.