将服务帐户与GMail api结合使用

时间:2019-05-20 18:23:05

标签: gmail-api

我正在尝试通过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,它可以正常工作并为我提供标签列表

0 个答案:

没有答案