【问题标题】:Google Actions not passing user info (access token/ identity token) in fulfillment requestGoogle Actions 未在履行请求中传递用户信息(访问令牌/身份令牌)
【发布时间】:2020-09-10 03:29:52
【问题描述】:

问题: Google 操作构建器实现似乎没有在请求中发送用户访问令牌

说明: 我正在将一个机器人从对话流助手集成迁移到操作构建器 (https://codelabs.developers.google.com/codelabs/actions-1/#0)。由于我需要用户信息来处理请求,因此我将使用与 oauth 身份验证代码流关联的帐户。由于我已经使用 dialogflow-google 助手集成构建了一个机器人,因此我有一个身份验证服务器正在运行,没有任何问题。

问题似乎只出在谷歌操作上,即使在用户帐户被链接之后,操作执行请求似乎也没有发送用户访问令牌。

谷歌操作发送的网络请求:

{
    "handler": {
        "name": "StatusKey"
    },
    "intent": {
        "name": "StatusKeys",
        "params": {},
        "query": "Status of keys"
    },
    "scene": {
        "name": "StatusKeys",
        "slotFillingStatus": "UNSPECIFIED",
        "slots": {}
    },
    "session": {
        "id": "ABwppHHPFyRT9H389dscBq5wk9Pg8qbaBzYtN2nEmxXHdss_cwD9IIjfV447cq6A3oFFKE8DgeOdIA",
        "params": {},
        "typeOverrides": [],
        "languageCode": ""
    },
    "user": {
        "locale": "en-US",
        "params": {},
        "accountLinkingStatus": "LINKED",
        "verificationStatus": "VERIFIED",
        "packageEntitlements": [],
        "lastSeenTime": "2020-09-10T01:57:46Z"
    },
    "home": {
        "params": {}
    },
    "device": {
        "capabilities": [
            "SPEECH",
            "RICH_RESPONSE",
            "WEB_LINK",
            "LONG_FORM_AUDIO"
        ]
    }
}

User account linked

我还检查了令牌端点是否返回了谷歌访问所需的所有令牌。附上它的示例响应。

{
    "id_token": "****************************",
    "access_token": "**************************",
    "expires_in": 3600,
    "token_type": "Bearer",
    "refresh_token": "**************************",
    "scope": "openid Api offline_access"
}

奇怪的是,在 dialogflow-google 助手集成中,相同的设置工作正常,在履行请求中发送用户访问令牌。

我已按照所附文章中的步骤进行操作: https://developers.google.com/assistant/identity/oauth2?oauth=code

【问题讨论】:

    标签: actions-on-google actions-builder


    【解决方案1】:

    在我的情况下,我在标头或请求正文中找不到 accesstoken,帐户链接已成功完成,但令牌未附加到标头或请求正文。

    【讨论】:

      【解决方案2】:

      看起来令牌在请求标头中传递。结束问题!

      【讨论】:

      • 哪个请求头?我似乎处于完全相同的情况并且研究了标头并且在任何地方都找不到oauth访问令牌。
      猜你喜欢
      • 2021-10-09
      • 2011-10-25
      • 1970-01-01
      • 2017-11-22
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 2017-08-31
      相关资源
      最近更新 更多