我正在尝试通过Google服务帐户访问G-Mail帐户。我没有G-Suite帐户。
去年,我使用服务帐户设置了对Google云端硬盘的访问权限,并且效果很好。尝试使用G-Mail完成同一件事。
目前,我只是使用自己的G-Mail帐户对此进行测试。我已经有一个与我的Google云端硬盘一起使用的服务帐户。
对于我来说,一个服务帐户是否需要G-Suite帐户才能使用G-Mail,这一点一点都不明确。根据一些文章,我发现听起来很像,但根据其他文章,则不是必需的。
$connected = false;
$connected = $gMail->connectToGmail();
if ($connected)
{
echo "Connection to GMail established!";
$service = new Google_Service_Gmail($gMail->client);
$user = 'me';
$results = $service->users_labels->listUsersLabels($user);
if (count($results->getLabels()) == 0) {
print "No labels found.\n";
} else {
print "Labels:\n";
foreach ($results->getLabels() as $label) {
printf("- %s\n", $label->getName());
}
}
}
$ gMail-> connectToGmail()使用Google_Service_Gmail :: GMAIL_READONLY(也尝试使用Google_Service_Gmail :: GMAIL_LABELS)获取客户端引用
此代码来自https://developers.google.com/gmail/api/quickstart/php,我希望这能给我G邮件中的标签列表。但是,它失败并显示错误400并返回此jSON:
{“错误”:{“错误”:[{“域”:“全局”,“原因”:“失败的前提”,“消息”:“错误的请求”}],“代码”:400,“消息“:“错误请求”}}
在$ service-> users_labels-> listUsersLabels()调用中返回错误。
我不确定问题出在哪里以及问题出在哪里。我很确定那里没有我想要的步骤,只是不知道它是什么。
我可以在API控制台中看到对gmail.users.labels.list的请求。如果我在API资源管理器中测试gmail.users.labels.list,它可以正常工作并为我提供标签列表