Как получить информацию о пользователе с помощью Google API PHP SDK

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

Я использую Google PHP SDK, расположенный здесь: https://github.com/google/google-api-php-client

$client = new Google_Client();
$client->setClientId($this->ci->config->item('client_id', 'google'));
$client->setClientSecret($this->ci->config->item('client_secret', 'google'));
$client->setRedirectUri($this->ci->config->item('callback_uri', 'google'));
$client->addScope('https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.login');
$this->client->createAuthUrl();

Но как теперь получить доступ к адресу электронной почты пользователя и другой базовой информации?

Я вижу в Google PHP SDK метод, называемый getAccountInfo() в классе Google_Service_IdentityToolkit, Однако этот параметр требует postBody но я не уверен, как получить / построить это.

8

Решение

Это вернет объект Google_Service_Oauth2_Userinfoplus с информацией, которую вы, вероятно, ищете:

$oauth2 = new \Google_Service_Oauth2($client);
$userInfo = $oauth2->userinfo->get();
print_r($userInfo);

куда $client это пример Google_Client

Выходы:

Google_Service_Oauth2_Userinfoplus Object
(
[internal_gapi_mappings:protected] => Array
(
[familyName] => family_name
[givenName] => given_name
[verifiedEmail] => verified_email
)

[email] =>
[familyName] =>
[gender] =>
[givenName] =>
[hd] =>
[id] => 123456
[link] => https://plus.google.com/123456
[locale] => en-GB
[name] => someguy
[picture] => https://lh3.googleusercontent.com/-q1Smh9d8d0g/AAAAAAAAAAM/AAAAAAAAAAA/3YaY0XeTIPc/photo.jpg
[verifiedEmail] =>
[modelData:protected] => Array
(
)

[processed:protected] => Array
(
)

)

Также обратите внимание, что вам нужно запросить https://www.googleapis.com/auth/userinfo.profile сфера также.

7

Другие решения

Вы сможете получить эту информацию, создав объект Google_Service_OAuth2, передав в качестве параметра параметр Google_Client, а затем получите оттуда информацию о пользователе.

$oauth2 = new Google_Service_Oauth2($client);
$userInfo = $oauth2->userinfo;
2

По вопросам рекламы [email protected]