php - 客户端未经授权使用此方法检索访问令牌 - 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 访问权限,我只需要访问我自己的日历并删除旧事件。请让我知道我错过了什么。
谢谢你
解决方案
我试图重新创建您的案例,我想我知道出了什么问题。
如果您选择“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。当您现在运行脚本时,您将在重定向站点上获得访问令牌。
推荐阅读
- python - 为什么我的 Python Beautifulsoup 程序会同时出现属性错误,然后又会同时自我修复?
- sql - 计数函数而不是计数(*)
- c# - LINQ - 比较我的模型的两个列表,它们共享一个值不相等的属性
- xcode - 使用 Xcode 在 iPhone 上安装我的 Flutter 应用
- elasticsearch - 如何让elasticsearch坐标节点不合并而诉诸
- arduino - 如何通过 MQTT 向 ESP32 发送 OTA 更新
- c - Mips,打印字符
- python - 使用 python 请求下载文件的中间
- sql - 面对 DB2 中的“未找到合并的行”错误
- google-maps - 如何始终显示标记 onTap() 事件?