首页 > 解决方案 > 客户端未经授权使用此方法检索访问令牌 - Google calendar php api

问题描述

我读过很多文章:

谷歌日历 API - PHP https://developers.google.com/calendar/quickstart/php

和其他..我想使用服务帐户,我为我的日历授予了权限,我已经下载了 json 密钥。如果我使用谷歌的代码,我得到:

缺少所需的重定向 URI

如果我使用代码:

$client = new Google\Client();
$client->setApplicationName('Gcal');
$client->setAuthConfig($key_file_location);
$client->setScopes([Google_Service_Calendar::CALENDAR]);
$client->setSubject($calendarId);
$client->setAccessType('offline');
$service = new Google_Service_Calendar($client); 

我有:

客户端未授权使用此方法检索访问令牌,或者客户端未授权任何请求的范围

我没有 admin.google 访问权限,我只需要访问我自己的日历并删除旧事件。请让我知道我错过了什么。

谢谢你

标签: phpgoogle-apigoogle-oauthgoogle-calendar-apigoogle-api-php-client

解决方案


我试图重新创建您的案例,我想我知道出了什么问题。

如果您选择“Web 服务器”,则在创建客户端配置时:

在此处输入图像描述

然后您可以使用示例中的 php,运行脚本,从获取变量中获取访问令牌并将其返回给控制台:

在此处输入图像描述

但是,如果您正在创建客户端配置并使用“Web 浏览器”,那么您的脚本会要求重定向 URI,您可以将其添加到示例 php:

...
$client = new Google_Client();
$client->setRedirectUri('https://yourdomain.com/somedir');
$client->setApplicationName('Google Calendar API PHP Quickstart');
...

但是,您必须转到Google Cloud Platform

在此处输入图像描述

并授权您的域和重定向 URI。当您现在运行脚本时,您将在重定向站点上获得访问令牌。


推荐阅读