【问题标题】:How to use refresh and access token obtianed using Oauth playground to call People API in my Google Action?如何在我的 Google 操作中使用使用 Oauth 操场获得的刷新和访问令牌来调用 People API?
【发布时间】:2020-09-04 05:57:59
【问题描述】:

我想访问经过身份验证的用户的联系人。 我从 oauth 游乐场获得了刷新和访问令牌。 如何使用这些token调用人的api?

【问题讨论】:

  • 你有客户端ID和客户端密码吗?
  • StackOverflow 在您可以显示您正在使用的特定代码或您一直试图解决的特定问题,但在调试问题时需要帮助时效果最佳。诸如此类的开放式问题要困难得多。如果您可以向我们展示您迄今为止尝试过的内容,或者具体来说您遇到了什么问题,我们就有更好的机会帮助您。见How do I ask a good question?
  • 是的,我确实有一个客户 ID 和秘密 @ziganotschka

标签: node.js dialogflow-es actions-on-google google-authentication dialogflow-es-fulfillment


【解决方案1】:

在您的情况下,最简单的方法可能是根据documentation 创建一个身份验证流程,您可以自己硬编码token.json 文件。

  • 如果您在没有 token.json 文件的情况下运行快速入门中的示例代码,您将被重定向到一个授权 URL,您必须在该 URL 中使用您的帐户进行身份验证,以便创建一个包含您的凭据的令牌文件。
  • 但是,如果您已有用户的令牌文件,则无需通过以给定用户身份登录来授权应用程序。
  • token.json 文件的结构如下:
{"access_token":"XXXXXXXXXXXXXXX","refresh_token":"YYYYYYYYYY","scope":"https://www.googleapis.com/auth/ZZZZZZZZZ","token_type":"Bearer","expiry_date":UNIX TIMESTAMP IN SECONDS}
  • 如果您拥有所需的信息,没有什么能阻止您自己创建token.json 文件

或者

oauth2Client.setCredentials({
  refresh_token: 'STORED_REFRESH_TOKEN'
});

手动为oauth2Client分配一个刷新令牌。

【讨论】:

  • 我已按照文档创建身份验证流程,在授权应用程序后,当我输入代码时,出现以下错误:{ error: 'invalid_grant', error_description: 'Malformed auth code。 ' }
  • 你解码了令牌吗?见here。也可能存在其他问题,例如用户未授予您离线访问权限或撤销访问权限,请查看possible scenarios
猜你喜欢
  • 2014-07-15
  • 2015-11-26
  • 2013-12-09
  • 2013-09-05
  • 2013-06-14
  • 1970-01-01
  • 2016-08-13
  • 1970-01-01
  • 2023-01-23
相关资源
最近更新 更多