首页 > 解决方案 > 无法从 google API 获取用户信息

问题描述

我正在使用Google API允许我的用户从我的网站发送电子邮件。电子邮件发送得很好,但很奇怪,我无法获取用户的信息,尤其是他的电子邮件。

这是我写的代码:

$client = new Google_Client();
$client->addScope(Google_Service_Gmail::GMAIL_READONLY);
$client->addScope(Google_Service_Gmail::GMAIL_LABELS);
$client->addScope(Google_Service_Gmail::GMAIL_MODIFY);
$client->setAuthConfig(__DIR__.'/credentials.json');
$client->setAccessType('offline');
$client->setPrompt('select_account consent');
$accessTokenLive = $client->fetchAccessTokenWithRefreshToken($refreshToken);
$client->setAccessToken($accessTokenLive);
$oauth = new Google_Service_Oauth2($client);
$accessToken = $client->getAccessToken();
$userData = $oauth->userinfo->get();
var_dump($userData);

$refreshToken是从数据库中获取的

我收到一条错误消息:

请求缺少所需的身份验证凭据。预期的 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。

我知道 $oauth->userinfo->get() 可能需要 OAuth 凭据,但我找不到从哪里获取它们,并且大多数关于相同问题的答案都来自上面的脚本。加上谷歌的 API 文档说范围是正确的。

我真的很难理解它是如何工作的。

标签: phpgoogle-apigoogle-api-php-client

解决方案


推荐阅读