Google API:“invalid_grant”,但代码没有改变

2024-01-26

我在 Google API 身份验证方面遇到以下问题:

PHP 致命错误:未捕获异常“Google_Auth_Exception”,消息“刷新 OAuth2 令牌时出错,消息:”{ “错误”:“无效授权” }'' 在 /home/bot/bot/vendor/google/apiclient/src/Google/Auth/OAuth2.php:328

然而,这个问题很奇怪,因为相同的代码在我的本地电脑上运行,但在服务器上停止运行。是否有可能与服务器时间有关?我的系统时钟已同步,但服务器大约落后 1 分钟。说真的,尽管我根本没有更改代码,但我不知道为什么它不再起作用了。以前是可以的,但是突然就出现这个问题了。

我能用它做什么呢?

<?php
$client = new Google_Client();
$client->setApplicationName('My App');
$client->setClientId($clientId);
$client->setClassConfig(
    'Google_Cache_File',
    ['directory' => __DIR__.'/res/tmp']
);

$service = new Google_Service_Calendar($client);

$cred = new Google_Auth_AssertionCredentials(
    $serviceAccountName,
    // https://www.googleapis.com/auth/calendar
    [Google_Service_Calendar::CALENDAR],
    $keyFile
);
$client->setAssertionCredentials($cred);

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

解决方案是同步服务器时间。服务器时间与原子钟仅相差 40 秒,但在向我的托管提供商发送票证后,我设法使其正常工作。问题已经消失了。然而,如果有人能解释为什么 OAuth 在精确的日期和时间上如此严格,我将不胜感激。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google API:“invalid_grant”,但代码没有改变 的相关文章

  • Google-api-php 刷新令牌返回 invalid_grant

    我几乎搜索了谷歌第一页的所有结果 但似乎找不到答案 我正在使用 Google API 的刷新令牌并接收 Error refreshing the OAuth2 token message error invalid grant 我在做什么
  • 无法使用 Google Calendar Api v3 获取访问令牌

    我正在尝试将日历事件放入日历中 而无需身份验证提示 我读到 使用 OAuth 服务帐户可以让您执行此操作 我已经在我的 Google 开发者控制台中设置了服务帐户 但对此没有任何运气 我们有一个 Google 企业帐户 我将我的委托用户设置
  • 如何在 YouTube 上上传大文件 [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我尝试了两种在 YouTube 上上传大文件的方法 但都不起作用 每种方法都有自己的问题 我的目标是找到上传大文件的正确答案 第一种方法 它将大文件分成不同的部分 而不是单独发送它们并
  • 使用服务帐户访问用户日历

    我的 Intranet 上有一个 php 应用程序 需要在用户的日历中添加事件 我按照以下指示进行操作https developers google com domains authentication delegation 我设置了 go
  • 如何在 Google 电子表格 API 中设置验证方法

    我对新的 Google Sheets API v4 感到困惑 我的问题是 如何为电子表格中的指定列设置验证规则 没有有用的教程来描述如何使用适当的方法 结果应类似于以下示例 该验证应该在数据上传之前设置 效果很好 我当前的代码 client
  • Google API 上未捕获异常“InvalidArgumentException”,带有消息“

    我已复制此网站上他们的文档中的代码 here 我已经更改了下面这些的 JSON 我已经在 Composer 上的 API 上生成了新文件 但仍然遇到一些问题 我不确定我做错了什么 这是否意味着他们的 API 漏洞太多 这是演示链接 demo
  • Google API 权限不足列出文件

    我正在尝试创建一个应用程序 使用云端硬盘服务帐户 列出给定文件夹中的文件并允许用户搜索这些文件的内容 我得到了403 Insufficient Permissions我无法解释的错误 我已经编辑了代码Google API PHP 客户端示例
  • 如何在不使用 Google Apps 的情况下授权 Google Drive 服务帐户访问 Google 帐户?

    我想使用 Google 云端硬盘作为我正在制作的网站的准 CMS 以便内容所有者可以使用 Google 云端硬盘编辑其内容 我想使用可以访问 Google 云端硬盘的特定用户帐户 在撰写本文时 服务帐户无法直接访问 Google 云端硬盘
  • (403) 您的项目无权访问此功能

    一直遵循有关如何插入网络属性的文档 以便我可以动态创建跟踪代码 目标是将我们的分析转移到 Google Analytics 中 并在分析下在他们自己的 Google 帐户上自动创建客户网站 经过我在网上找到的信息 似乎这个功能可能被列入白名
  • 如何使用 PHP 中的服务帐户将文件上传到 Google Drive?

    快速入门 在 PHP 中运行云端硬盘应用程序 https developers google com drive web quickstart quickstart php似乎使用的是过时版本的 google api php client
  • Google+登录跨客户端(android/web)身份验证

    我正在尝试将 使用 Google 登录 集成到具有以下功能的应用程序中 android和网络组件 通过以下步骤 Web 组件中的所有内容都可以正常工作 1 使用防伪令牌 客户端 ID 和应用程序名称渲染视图 state md5 rand S
  • 项目中尚未使用旧版 People API

    我在调用 google 登录 API 时遇到错误 错误是 旧版 People API 之前未在项目 中使用过或已被禁用 但人员 API 已启用 如何解决这个错误 这是我的 google api url 这足以解决我的问题 if empty
  • PHP Youtube API v3 - 直接上传 - 未经授权的消息

    我正在尝试使用 API v3 将视频直接上传到 Youtube 我在用着服务帐户设想 并且我解决了 google api php client 库中的一些问题 读取 p12 文件并避免 isAccessTokenExpired 始终返回 f
  • 使用 google-api-php-client 下载文件

    我在尝试使用位于以下位置的 php 客户端从 Google Cloud Storage 下载文件时遇到问题https code google com p google api php client https code google com
  • Google OAuth:无法使用授权代码获取刷新令牌

    我正在使用 Google API 客户端进行 Google Analytics 和 OAuth 2 0 我阅读此内容是为了获取刷新令牌 但它没有出现 https developers google com identity protocol
  • Google 存储桶的签名网址与提供的签名不匹配

    我在使用谷歌存储时遇到了困难 所以我正在尝试做一个签名网址 https cloud google com storage docs access control Signed URLs 已经有客户端 ID 这是一封电子邮件 和私钥 如所述h
  • 如何使用 Google Calendar API v3/Google API 客户端库显示*所有*可用日历的列表?

    我一直在尝试使用 PHP 访问 Google Calendar API v3 最初 我想简单地列出我可以通过 API 调用访问的用户日历 为此 我下载了 Google API PHP 客户端库 并尝试使用以下代码 经过我的改编 来自http
  • 使用PHP批量删除域共享联系人

    我正在使用 Google API PHP客户端库 v2 1 3 https github com google google api php client 我正在关注以下文档域共享联系人 https developers google co
  • RefreshToken 在我获得新的令牌 Google Sheets API 后没有发回

    我正在使用带有 PHP 的 Google Sheets API 并遵循可以在此处找到的快速入门指南https developers google com sheets quickstart php https developers goog
  • Google API PHP 刷新令牌返回 NULL

    我正在使用适用于 PHP 的 Google API 客户端库进行离线身份验证 但是当我使用以下代码时 this gt google gt refreshToken result google refresh token 它返回 NULL t

随机推荐