Можно ли получить информацию из профиля пользователя через Google API? Если возможно, какой API мне следует использовать?
Мне интересна такая информация:
- URL профиля пользователя (например, https://profiles.google.com/115063121183536852887 );
- Пол (пол);
- Аватар.
Также было бы здорово получить другую информацию из профиля пользователя.
oauth
google-api
userinfo
глагола
источник
источник
curl -X GET "https://www.googleapis.com/oauth2/v1/userinfo?alt=json" -H"Authorization: Bearer accessTokenHere"
область действия - https://www.googleapis.com/auth/userinfo.profile
получить https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token
вы получите json:
Тахиру Ясину:
Это пример PHP.
Вы можете использовать функцию json_decode, чтобы получить массив userInfo.
источник
$userInfoArray
свойствам. Это должно быть похоже$userInfoArray['email']
на получение адреса электронной почты из$userInfoArray
. ОБРАТИТЕ ВНИМАНИЕ НА ОДИН ПРЕДЛОЖЕНИЕ ДЛЯ ДОСТУПА ОБЪЕКТОВ.define(email, 'email')
Эта область https://www.googleapis.com/auth/userinfo.profile устарела. Пожалуйста , посмотрите на https://developers.google.com/+/api/auth-migration#timetable .
Новая область, которую вы будете использовать для получения информации профиля: profile или https://www.googleapis.com/auth/plus.login.
а конечная точка - https://www.googleapis.com/plus/v1/people/ {userId} - userId может быть просто «я» для текущего пользователя, вошедшего в систему.
источник
If you are directly requesting the “plus.me” scope, any other Google+ OAuth scopes, or making any Google+ API calls, please ensure that you remove these requests from your project before March 7, 2019.
- GoogleЯ использую
PHP
и решил это с помощью версии 1.1.4 google-api-php-clientПредположим, что следующий код используется для перенаправления пользователя на страницу аутентификации Google:
Предполагая, что в объект возвращается действительный код аутентификации
redirect_url
, следующее сгенерирует токен из кода аутентификации, а также предоставит базовую информацию профиля:Однако местоположение не возвращается. В новых аккаунтах YouTube нет конкретных имен пользователей YouTube.
источник
Я использую Google API для .Net, но, без сомнения, вы можете найти такой же способ получить эту информацию, используя другую версию API. Как упоминалось в user872858 , область userinfo.profile устарела ( статья Google ).
Чтобы получить информацию о профиле пользователя, я использую следующий код (переписанная часть из примера Google ):
Затем вы можете получить доступ практически ко всему, используя userProfile.
ОБНОВЛЕНИЕ: чтобы заставить этот код работать, вы должны использовать соответствующие области на кнопке входа в Google. Например моя кнопка:
источник
Необходимо выполнить 3 шага.
Очень интересно, что это простейшее использование нигде четко не описано. И я считаю, что существует опасность, вам следует обратить внимание на
verified_email
параметр, который появляется в ответе. Потому что, если я не ошибаюсь, для регистрации вашего приложения могут появиться поддельные электронные письма. (Это всего лишь моя интерпретация, есть шанс, что я ошибаюсь!)Я считаю, что механизм OAuth в facebook очень четко описан.
источник
Если вы находитесь в клиентской веб-среде, новый API JavaScript auth2 содержит столь необходимую
getBasicProfile()
функцию, которая возвращает имя пользователя, адрес электронной почты и URL-адрес изображения.https://developers.google.com/identity/sign-in/web/reference#googleusergetbasicprofile
источник
Если вы хотите получить только идентификатор пользователя, имя и изображение Google для посетителя вашего веб-приложения - вот мое чисто сервисное решение PHP на 2020 год без использования внешних библиотек -
Если вы читали руководство Google по использованию OAuth 2.0 для приложений веб-сервера (и будьте осторожны, Google любит изменять ссылки на свою документацию), то вам нужно выполнить всего 2 шага:
Один из возвращаемых токенов называется id_token и содержит идентификатор пользователя, имя и фотографию посетителя.
Вот написанный мной PHP-код веб-игры . Первоначально я использовал Javascript SDK, но затем я заметил, что в мою веб-игру могут передаваться поддельные пользовательские данные при использовании только клиентского SDK (особенно идентификатора пользователя, который важен для моей игры), поэтому я переключился на использование PHP на стороне сервера:
Вы можете использовать библиотеку PHP, чтобы добавить дополнительную безопасность, проверив подпись JWT. Для моих целей в этом не было необходимости, потому что я верю, что Google не предаст мою маленькую веб-игру, отправив поддельные данные о посетителях.
Также, если вы хотите получить больше личных данных посетителя, вам понадобится третий шаг:
Или вы можете получить больше разрешений от имени пользователя - см. Длинный список в документе OAuth 2.0 Scopes for Google APIs .
Наконец, константы APP_ID и APP_SECRET, используемые в моем коде - вы получаете их из консоли Google API :
источник