当前位置: 首页 > 知识库问答 >
问题:

未经授权的客户端Google日历API(Google\u Service\u例外)

常坚
2023-03-14

我已经设置了谷歌日历API项目。我正在使用OAuth 2.0访问带有同意屏幕的Google日历API数据

我遵循了这里提到的流程:https://developers.google.com/google-apps/calendar/quickstart/php

当我试图获取授权Google帐户的所有日历时。我收到以下错误:

<h1>Google_Service_Exception</h1>
{
 "error": "unauthorized_client",
 "error_description": "Unauthorized"
}

以下是获取所有日历列表的代码:

$client = $this->getGoogleCalenderClient($clientSecretPath);

$accessToken = json_decode(file_get_contents($clientSecretPath), true);

$client->setAccessToken($accessToken);

if ($client->isAccessTokenExpired()) {

    $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
    $result = $s3Client->putObject([
        'Bucket' => $bucketName,
        'Key' => $credentialsPath,
        'Body' => json_encode($client->getAccessToken())
    ]);
}

$service = new Google_Service_Calendar($client);

$calendarList = $service->calendarList->listCalendarList();


有人知道这里发生了什么吗?我如何修复这个错误?
感谢任何帮助。

共有1个答案

莫英喆
2023-03-14

有人知道这里发生了什么吗?我如何修复这个错误?

如果您使用服务帐户访问应用程序,

请查看此Github和Google的官方文档以获取全域授权。

谷歌应用程序域的管理员必须执行以下步骤:

  1. 转到您的谷歌应用程序域的管理控制台
 类似资料:
  • 之后,我得到以下错误: 我们使用的是restapi.php (a)我们使用的是G套件“基本版”;那有什么限制吗?(b)我们从PHP(7.0)环境中调用G-Suite API;是否有任何已知的问题,因为环境仍然标记为'(Beta)'。(c)是否有任何样例/教程可以给出解决我们问题的指针。

  • 我使用Google Drive Android API让用户将他们Android设备上的Google Drive文件上传到我的服务器。我现在想更改此设置,以允许我的服务器使用跨客户端授权直接访问用户Google Drive,这意味着我必须使用生成。这是一切都脱轨了。为了生成此令牌,我需要一个对象。 目前,我正在设置如下: 这工作得很好,它不时显示一个帐户选择器,用户可以在其中选择要连接的帐户。全部

  • 问题内容: 我正在编写用于创建BigQuery和Google Cloud Storage授权的类。 在过去,我已经使用已被 弃用 。我正在尝试使用,但是我发现它只允许在需要使用时使用。 我知道一个可以转换到,但我不知道如何将它们转换成相反的方向(到)。例如,我正在这样创建我的连接: 谁能指出我的实现方向? 谢谢! 问题答案: 在大多数情况下,无论您在哪里使用,都可以使用。您只需要使用一点,那就是在

  • 我正在建立一个应用程序,两个不同的用户将编辑相同的文件在线,只使用纯文本。为此,我使用GitHub上的google-api-php-client-master。 有一些例子,但我不明白我需要做什么才能达到目的。官方文档是不推荐的,因为它是一个不在线的库,所有的类都有不同的名称和工作方式。 我已经获得了我的凭据,并知道如何获得托管在我的驱动器帐户上的文档列表。但现在我需要: null 我不指望任何人

  • 我正在开发一个android应用程序,它有可能提供大量的统计信息。我想把这些数据保存在我的谷歌硬盘上,以便以后分析。 然而,我对谷歌API是新手,几乎不知道如何通过编程方式授权我的帐户。这是我到目前为止的情况。 代码运行成功,文件已在设备上创建,但我想将其发送到我的google驱动器。 我认为主要问题是我不知道帐户名称凭据应该是什么。我有一种感觉,它不是“myacc@gmail.com”。有什么方

  • 我使用的不是Javascript direct,而是Clojurescript,所以我的上传调用可能有问题。缺少任何请求Google drive权限的内容似乎表明存在真正的授权问题,但我希望在请求“https://www.googleapis.com/auth/drive”时不会获得access_token。谢谢 更新....我终于解决了这个问题:如果我请求“https://www.googlea