【问题标题】:Automate Google Calendar Access Authorization Code Retrieval - NodeJS自动化谷歌日历访问授权代码检索 - NodeJS
【发布时间】:2020-09-13 12:37:39
【问题描述】:

我是 NodeJS 的新手,任何帮助都将不胜感激。
我目前正在制作一个应用程序来访问用户的 Google 日历。 现在,我使用我的项目凭据,使用以下链接中的 NodeJS 代码 sn-p。

https://developers.google.com/calendar/quickstart/nodejs

运行脚本后,会有一个链接将用户定向到 Google 登录页面,用户可以在该页面从所选帐户登录,然后授权完整日历访问应用程序。
在授权日历访问应用程序后,用户会看到一个唯一代码,必须将其复制到终端(由脚本提示),然后生成一个令牌并将其存储在 token.json 中。

我想自动检索唯一代码(在授予访问权限时为用户生成),而无需用户复制代码并将其粘贴到终端中。

对此的任何帮助将不胜感激!

此外,显示要复制的唯一令牌的页面和前面的步骤已显示在随附的屏幕截图中。

Step 1

Step 2

Step 3

Step 4

【问题讨论】:

    标签: javascript node.js automation authorization google-calendar-api


    【解决方案1】:

    您需要使用服务帐户。它们就像“虚拟用户”,不需要授权用户交互。您必须授予您的用户访问服务帐户的权限。

    您可以按照guide 进行设置:

    1. 打开Service accounts page
    2. 如果出现提示,请选择一个项目,或创建一个新项目。
    3. 点击+创建服务帐号
    4. 服务帐户详细信息下,输入服务帐户的名称、ID 和描述,然后点击创建
    5. 可选:在服务帐号权限下,选择要授予服务帐号的 IAM 角色,然后点击继续
    6. 可选:在授予用户访问此服务帐号的权限下,添加允许使用和管理该服务帐号的用户或群组。
    7. 点击+创建密钥,然后点击创建

    然后,使用 NodeJS 服务帐户 guide 来使用新的凭据。


    除了服务帐户,您还可以通过保存刷新令牌以编程方式请求新的访问令牌来完成此操作,而无需用户交互。请参阅this 文档。

    【讨论】:

    • 非常感谢!我觉得让我们走上了正确的轨道,我们目前正在使用您的第二个解决方案中的链接(这与我们更相关,因为这是一个客户端 Web 应用程序)正在使用刷新令牌使用 OAuth2.0 生成新的访问令牌按照developers.google.com/identity/protocols/oauth2/… 指示的端点。希望这最终会奏效。非常感谢您的帮助!
    • 不客气!如果对您有帮助,请考虑接受答案,以便其他人也可以找到此解决方案:)
    猜你喜欢
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 2016-04-01
    • 2019-12-16
    • 1970-01-01
    • 2018-09-25
    • 2016-01-03
    • 2020-07-10
    相关资源
    最近更新 更多