Я делал это аутентификации Google учебник, чтобы лучше понять, как использовать Google для входа в аккаунт апи и я недавно получил эту ошибку:Фатальная ошибка: Вызов функции-члена GetAttributes() на массиве
Fatal error: Call to a member function getAttributes() on array.
It происходит всякий раз, когда я пытаюсь:
$this->client->verifyIdToken()->getAttributes();
в функции getPayload()
. Я не знаю, почему это происходит. Моя конфигурация - Windows 10, и я использую WAMP-сервер для запуска этого приложения. Любая помощь будет оценена по достоинству.
<?php class GoogleAuth {
private $db;
private $client;
public function __construct(Google_Client $googleClient)
{
$this->client = $googleClient;
$this->client->setClientId('234sfsdfasdfasdf3223jgfhjghsdsdfge3.apps.googleusercontent.com');
$this->client->setClientSecret('fD5g4-B6e5dCDGASefsd-');
$this->client->setRedirectUri('http://localhost:9080/GoogleSigninTutorial/index.php');
$this->client->setScopes('email');
}
public function checkToken()
{
if(isset($_SESSION['access_token']) && !empty($_SESSION['access_token']))
{
$this->client->setAccessToken($_SESSION['access_token']);
}
else
{
return $this->client->createAuthUrl();
}
return '';
}
public function login()
{
if(isset($_GET['code']))
{
$this->client->authenticate($_GET['code']);
$_SESSION['access_token'] = $this->client->getAccessToken();
return true;
}
return false;
}
public function logout()
{
unset($_SESSION['access_token']);
}
public function getPayload()
{
return $this->client->verifyIdToken()->getAttributes();
}
}
?>
Спасибо !!! Спасло меня! Только одно: при настройке областей укажите, что вы хотите ... проверьте здесь ... http: //stackoverflow.com/questions/14007560/get-userinfo-from-google-oauth-2-0-php-api – Albeis
Хорошая точка Альбис! Кроме того, вы можете найти все области здесь https://developers.google.com/identity/protocols/googlescopes Просто используйте Ctrl + F (Cmd + F), чтобы найти конкретное ключевое слово в области, в которой вы нуждаетесь, если вы не уверен, что это называется. – user