9

我正在使用 Google Analytics API 来获取分析数据。我尝试使用以下步骤对其进行身份验证:

  • 在https://console.developers.google.com/凭据部分创建了 OAuth 客户端 ID 。
  • 在同意屏幕中,我将发布状态设置为测试
  • 在 OAuth 2.0 Playground 中,我使用上面生成的客户端 ID 和客户端密码获得了刷新令牌
  • 然后我使用它通过它生成访问令牌。

但是几天后,刷新令牌就会过期,尽管提到刷新令牌的有效期是终身的。

4

6 回答 6

14

如果您的应用处于测试模式,则用户令牌将在 7 天后过期。请在此处找到此说明:https: //support.google.com/cloud/answer/10311615#zippy=%2Ctesting 在此处输入图像描述

于 2021-06-14T08:19:48.070 回答
12

我需要使用 nodemailer 从我有权访问的 gmail 帐户发送邮件。在我的刷新令牌被神秘撤销之前它可以工作几天,即使该帐户属于我。谷歌搜索把我带到了这里,我已经观察了一段时间,希望有人能提供解决方案。

正如您所提到的,这似乎只发生在测试/未经验证的应用程序中,我猜谷歌几天后会在您的帐户中撤销此类应用程序的令牌。经过多次试验和错误,这就是我所做的。

注意:此解决方案仅适用于您拥有的帐户,否则您必须验证您的应用才能访问其他人的帐户

  1. 生成一个新的刷新令牌(现有的很可能被撤销),如this SO post中所述
  2. 转到您的 google 帐户仪表板的安全选项卡
  3. 最近的安全活动部分下,您应该会看到您的应用的安全警报。
  4. 单击通知旁边的上下文菜单,然后单击DISMISS
  5. 此时,您将看到一个选项对话框,您可以在其中指示您对该应用程序的信任级别。我只是继续说我信任开发人员/应用程序,显然。就是这样!刷新令牌应在此之后保留。

我在其他任何地方都找不到任何相关的东西。所以,如果它适合你,请接受这个答案。它可能会帮助别人

于 2021-02-20T14:17:06.110 回答
8

另一个答案为我指明了正确的方向,但对我来说,该选项位于其他位置:安全 > 安全检查/发现安全问题 > 应用旁边的上下文菜单 > 关闭

于 2021-04-20T09:27:04.660 回答
3

这个问题似乎是针对未经验证的应用程序,只需从您的项目中删除令牌文件并重新运行项目,它将创建一个新令牌。

于 2021-05-27T16:53:47.147 回答
0

解决方案是删除您的token.json文件以强制 Google 查找新令牌。

我能够在没有经过验证的应用程序的情况下让它工作。验证我的应用程序后,该refresh()方法可能会起作用。不确定那个。

于 2022-01-03T19:33:30.860 回答
0

我的问题是当我添加access_token而不是refresh_token.

于 2022-01-19T16:22:34.040 回答