我正在尝试使用php库获取邮件列表。之前它正在工作,但现在它显示以下错误:
发生错误:{"错误":" invalid_grant"," error_description": "错误请求" }
array(0){}
代码:
function getList($lastsynctime='') {
// Get the API client and construct the service object.
$client = $this->getClient();
$service = new Google_Service_Gmail($client);
// $newTime = strtotime('-15 minutes');
if ($lastsynctime =='') {
$newTime = strtotime('-60 day');
$after = strtotime(date('Y-m-d H:i:s', $newTime));
}else{
$after = strtotime($lastsynctime);
}
// Print the labels in the user's account.
$userId = 'me';
$pageToken = NULL;
$messages = array();
$opt_param = array();
do {
try {
if ($pageToken) {
$opt_param['pageToken'] = $pageToken;
}
$opt_param['q'] = "from:example@gmail.com after:$after";
$messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
echo "<pre>";var_dump($messagesResponse);
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
} while ($pageToken);
return $messagesResponse;
}
答案 0 :(得分:2)
嘛!由于您的代码之前正在运行,并且您没有更改任何内容。然后我认为问题不在你的代码中。
您可以在gmail 我的帐户菜单下查看已关联的应用和网站设置,以确保您的应用在那里。
如果应用程序在那里但尚未运行,则您需要删除该应用并重新生成客户端密钥。因为您的客户机密可能会过期。
答案 1 :(得分:0)
我在其他API(Google Search Console)中收到此错误。
尝试从您的Gmail帐户访问https://myaccount.google.com/security#connectedapps。
查看Drive Testing Key
下是否显示Apps with account access
。如果没有,则就像@Mahbubul Islam提到的那样,您需要再次创建凭据。