谷歌助手登录帐户链接的操作。谷歌Id应该在哪里?

2024-04-29 14:10:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为GoogleAssistant构建一个操作,我正在尝试使用帐户链接和这里描述的登录选项https://developers.google.com/assistant/identity/google-sign-in

这一切都是正确的,我在我的场景流中获得了所有正确的条件,相信用户已正确验证,并且他的帐户已链接

现在我的问题是,我在任何地方都找不到文档中命名的Google Id。 更具体地说,我现在在文档中:

Part of the doc about receiving a Google Id

它明确地说“在用户授权您的操作访问他们的Google配置文件后,您将收到一个Google ID令牌,该令牌在您的操作的每个后续请求中包含用户的Google配置文件信息。”但我在对我的webhook的请求中找不到它

下面是我得到的请求正文的一个示例:

{
  "handler": {
    "name": "testScene"
  },
  "intent": {
    "name": "",
    "params": {
      "AccountLinkingSlot": {
        "original": "",
        "resolved": "LINKED"
      }
    },
    "query": ""
  },
  "scene": {
    "name": "TestScene",
    "slotFillingStatus": "UNSPECIFIED",
    "slots": {},
    "next": {
      "name": "actions.scene.END_CONVERSATION"
    }
  },
  "session": {
    "id": "ABwppHEW23oRCX4FofxCg_rIDBo9UepL-Tw6u-AV3vKTzPoC6c9wkP0xjG7DoGqEZOWA2tlMYtcsbDcmQUw",
    "params": {
      "AccountLinkingSlot": "LINKED"
    },
    "typeOverrides": [],
    "languageCode": ""
  },
  "user": {
    "locale": "en-US",
    "params": {},
    "accountLinkingStatus": "LINKED",
    "verificationStatus": "VERIFIED",
    "packageEntitlements": [],
    "lastSeenTime": "2020-10-27T20:35:59Z"
  },
  "home": {
    "params": {}
  },
  "device": {
    "capabilities": [
      "SPEECH",
      "RICH_RESPONSE",
      "LONG_FORM_AUDIO"
    ]
  }
}

我只发现,如果你使用nodejs,你可以在你的系统中放置你自己的客户端id,它会处理好它,但是我使用的是fastApi(Python),除了在已经链接的文档中编写的内容之外,在文档中找不到任何关于要做什么的内容

任何帮助都将不胜感激


Tags: 用户name文档id内容链接配置文件google
1条回答
网友
1楼 · 发布于 2024-04-29 14:10:05

我想我是在随意环顾四周时找到答案的。希望这将是有用的

在我从google获得的请求标题中,有两个标题:

  • “谷歌助理签名”
  • “授权”

两者都具有我期望在Json Web令牌中看到的典型的三部分点分隔格式

现在,我尝试使用从文档https://www.googleapis.com/oauth2/v3/certs中的url获得的两个密钥对它们进行解密,显然,这两个密钥中的第一个是执行此任务的有效密钥

授权令牌包含我正在查找的用户数据

还有一些问题没有回答:

  • 为什么我要得到两个不同的令牌,然后必须猜测使用哪一个?我在代码中保留了这两个令牌,并使用了一个试错系统,以防google向我发送随机加密的令牌(使用一个或另一个密钥)。。。我不知道,我也不知道在哪里可以找到这类信息
  • 另一个令牌中的数据是用于什么的?看起来是这样的:
{
  "iss":"https://accounts.google.com",
  "aud":"<redacted>",
  "nbf":<redacted>,
  "iat":<redacted>,
  "exp":<redacted>,
  "jti":"<redacted>"
}
  • 为什么文档没有告诉我这些事情?我应该已经知道了吗?我应该回大学吗?

相关问题 更多 >