gpt4 book ai didi

auth0 - 无法交换访问 token 的授权码 (feacft)

转载 作者:行者123 更新时间:2023-12-02 06:33:54 35 4
gpt4 key购买 nike

我想使用 Dialogflow 和 Google Assistant 以及 Google Transactions API 创建一个聊天机器人,以使用户能够订购一些元素。现在我的代理包含以下四个意图:

  • Default Welcome Intent (文字回复:你好,要买巧克力盒吗?)
  • Default Fallback Intent
  • Int3 (训练短语:“是的,我想登录”,实现:启用 webhook)
  • Int4 (事件:actions_intent_SIGN_IN,实现:启用 webhook)

  • 我正在使用 Dialogflow Json 而不是 Node.js 将我的代理与 Transactions API 连接起来。我实现了设置 Account Linking 所需的所有步骤对于 Actions on GoogleAuth0正如在以下帖子中所描述的那样:
  • How to authenticate user with just a Google account on Actions on Google?
  • https://productforums.google.com/forum/#!topic/dialogflow/omr_2iZXLxw;context-place=forum/dialogflow
  • https://www.jovo.tech/blog/google-action-account-linking-auth0/

  • 因此,现在我询问例如用户 手机上的谷歌助手在对话“您要登录吗?”然后用户回复“是的,我想登录”,触发 Int3 .在这种情况下,我通过 webhook 从我的后端发送以下 json:
    {
    "payload": {
    "google": {
    "expectUserResponse": true,
    "isSsml": false,
    "noInputPrompts": [],
    "systemIntent": {
    "data": {
    "@type": "type.googleapis.com/google.actions.v2.SignInValueSpec",
    "optContext": "To make the order easier"
    },
    "intent": "actions.intent.SIGN_IN"
    }
    }
    }
    }

    然后这使得以下窗口出现在用户的屏幕上: Log in window

    所以我按 LOG IN WITH GOOGLE 继续并选择我的一个 gmail 帐户。但是,我在 Google 助理上收到以下错误: Sorry, something went wrong. Please try again later
    而且我在后端收到以下json作为响应:
    {
    "responseId": "c65ab8d3-f6e9-4e86-9645-6785b01d3f10",
    "queryResult": {
    "queryText": "actions_intent_SIGN_IN",
    "action": "sign_in",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentMessages": [
    {
    "text": {
    "text": [
    ""
    ]
    }
    }
    ],
    "outputContexts": [
    {
    "name": "projects/*********/agent/sessions/1527240031183/contexts/actions_capability_screen_output"
    },
    {
    "name": "projects/*********/agent/sessions/1527240031183/contexts/actions_intent_sign_in",
    "parameters": {
    "SIGN_IN": {
    "@type": "type.googleapis.com/google.actions.v2.SignInValue",
    "status": "ERROR"
    }
    }
    },
    {
    "name": "projects/*********/agent/sessions/1527240031183/contexts/actions_capability_audio_output"
    },
    {
    "name": "projects/*********/agent/sessions/1527240031183/contexts/actions_capability_web_browser"
    },
    {
    "name": "projects/*********/agent/sessions/1527240031183/contexts/actions_capability_media_response_audio"
    }
    ],
    "intent": {
    "name": "projects/*********/agent/intents/75e0bc57-1829-4efe-9e35-dbcaa3da5a77",
    "displayName": "Sign_in"
    },
    "intentDetectionConfidence": 1,
    "diagnosticInfo": {},
    "languageCode": "en-gb"
    },
    "originalDetectIntentRequest": {
    "source": "google",
    "version": "2",
    "payload": {
    "isInSandbox": true,
    "surface": {
    "capabilities": [
    {
    "name": "actions.capability.SCREEN_OUTPUT"
    },
    {
    "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
    },
    {
    "name": "actions.capability.WEB_BROWSER"
    },
    {
    "name": "actions.capability.AUDIO_OUTPUT"
    }
    ]
    },
    "inputs": [
    {
    "rawInputs": [
    {}
    ],
    "arguments": [
    {
    "extension": {
    "@type": "type.googleapis.com/google.actions.v2.SignInValue",
    "status": "ERROR"
    },
    "name": "SIGN_IN"
    }
    ],
    "intent": "actions.intent.SIGN_IN"
    }
    ],
    "user": {
    "lastSeen": "2018-05-25T09:20:16Z",
    "locale": "en-GB",
    "userId": "*********"
    },
    "conversation": {
    "conversationId": "1527240031183",
    "type": "ACTIVE",
    "conversationToken": "[]"
    },
    "availableSurfaces": [
    {
    "capabilities": [
    {
    "name": "actions.capability.SCREEN_OUTPUT"
    },
    {
    "name": "actions.capability.WEB_BROWSER"
    },
    {
    "name": "actions.capability.AUDIO_OUTPUT"
    }
    ]
    }
    ]
    }
    },
    "session": "projects/*********/agent/sessions/1527240031183"
    }

    返回 "status": "ERROR"对于 SignInValue .

    Auth0日志部分,此登录尝试被描述为成功,但交换被描述为失败:
    enter image description here
    此特定失败交换的特定日志包含以下 json:
    {
    "date": "2018-05-25T09:20:53.786Z",
    "type": "feacft",
    "description": "Unauthorized",
    "connection_id": "",
    "client_id": "Xsr3VFE***********",
    "client_name": null,
    "ip": "66.249.81.44",
    "user_agent": "OpenAuth",
    "hostname": "*********.eu.auth0.com",
    "user_id": "",
    "user_name": "",
    "log_id": "****************"
    }

    在哪里 feacft代表 Failed to exchange authorization code for Access TokenAuth0 .

    虽然它可能无关紧要,但让我注意到,当:
  • 我手动转到 Auth0 -> Connections -> Social -> Google -> TRY
  • 我选择和上面一样的Gmail账号
  • 我按 Go to auth0.com (unsafe)在这个页面:"This is not verified"
  • allow auth0.com to access my Google Account

  • 我终于明白了: "It works!"

    Auth0日志部分我终于得到 Success Exchange为了这。

    此特定成功交换的特定日志包含以下 json:
    {
    "date": "2018-05-29T08:14:48.843Z",
    "type": "seacft",
    "description": "",
    "connection_id": "",
    "client_id": "EXOtUb****************",
    "client_name": "N/A",
    "ip": "35.160.3.103",
    "user_agent": "Node-oauth",
    "hostname": "**********.eu.auth0.com",
    "user_id": "",
    "user_name": "",
    "log_id": "*****************"
    }

    但是请注意,在后一种情况下( Success Exchange) client_id与前一种情况不同( Failed Exchange )。在 Failed Exchange案例, client_idAuth0 之一我创建但在 Success Exchange 中的应用程序我不知道这是什么 client_id ;也许是 client_id一个内部安装的 Auth0用于测试 Auth0之间的连接和其他客户(谷歌、Facebook 等)。

    如何通过谷歌助手成功登录并获取"status": "OK"对于SignInValue ?

    到目前为止我做错了吗?

    我发现有两个帖子报告了我在 Auth0 上遇到的错误( feacft 错误):

    - https://community.auth0.com/t/uwp-application-triggers-a-feacft-error-log-event-when-using-google-facebook-authentication/6394

    - https://github.com/auth0/react-native-auth0/issues/62

    他们俩都报告说他们更改了 Auth0应用到 Native (例如来自 Machine to Machine )并且错误已修复。但是,我对此进行了测试,到目前为止它对我不起作用。

    最佳答案

    最后我解决了这个问题,即使我并不完全知道为什么会解决这个问题,所以欢迎对我的回答进行任何额外的解释。请写在下面的评论中。

    Auth0 Applications面板现在看起来像这样:

    enter image description here

    到目前为止,我使用的是 Auth0 Management API (Test Application)应用程序及其在 Google 上的操作的凭据,用于我在上面的帖子中描述的任务。
    我正在尝试修改此应用程序的一些设置和配置详细信息,但仍然遇到相同的错误。

    然后,我想到了简单地创建一个新应用程序。我的两个新应用程序(NewNew2)在手机上的 Google Assistant 上运行良好。

    请记住,Auth0 Management API (Test Application) 之间和 New2应用程序的所有配置细节和设置,据我所知,都是一样的,所以我不知道为什么后者对我有用,而前者对我不起作用。我怀疑前者是一个测试应用程序,所以它的用途非常有限,但我认为它适用于我的项目。

    关于auth0 - 无法交换访问 token 的授权码 (feacft),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50526831/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com