我正在使用 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凭据,但是我找不到从何处获取它们,并且关于相同问题的大多数答案都来自上述脚本。加上Google的API文档说,范围是正确的。
我真的很难理解它是如何工作的。