1

我的 Dialogflow 代理已与 Google Assistant 集成,我正在尝试使用 Actions on Google 对其进行扩展。现在我们正在尝试将 Account 链接到我们客户的 Oauth 服务器。Auth URL、Redirect URI、Client secret 和 Client Id 由它们提供,并且在 Actions Console 中我的项目的帐户链接部分中配置了相同的配置,并带有授权代码流。使用相同的细节,我能够实现与我的 Alexa Skill 关联的帐户。我使用 Node.js 作为我的 webhook,同样使用actions-on-google包来处理意图。我从文档中获得了以下代码,将其添加到我的 webhook

const app = dialogflow({ debug: false })

app.intent('Get Signin', (conv, params, signin) => {
    console.log("signin", signin)
    if (signin.status === 'OK') {
        const access = conv.user.access.token // possibly do something with access token
        conv.ask('Great, thanks for signing in! What do you want to do next?')
    } else {
        conv.ask(`I won't be able to save your data, but what do you want to do next?`)
    }
})

app.intent('Default Welcome Intent', (conv) => {
    conv.ask(new SignIn());

})  

每当我调用代理时,它都会要求我将帐户与 Google 链接(尽管我没有尝试使用 Google 登录)浏览器打开时使用我的客户端的 OAuth 授权端点,我提供了登录信息并返回到带有错误消息的 Google 助理应用程序

抱歉,出了点问题,所以我无法让你登录。不过你可以稍后再试

我尝试将变量登录输出到控制台,我可以看到以下错误

{
  '@type': 'type.googleapis.com/google.actions.v2.SignInValue',
  status: 'ERROR'
}

在 Google Assiatant App 中,我可以看到重定向 URI 参数为

https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID?code=AUTHORIZATION_CODE&state=STATE_STRING

我需要澄清以下几点

  1. 除了使用 Google 登录之外,我能否在 Actions on Google 中实现与其他 Oauth 服务器的帐户链接?
  2. 我在 Google 控制台上的代码或 Dialogflow 和 Actions 中是否缺少任何其他步骤?

非常感谢这里的帮助。如果提供的信息不充分,请告诉我。

4

1 回答 1

0

问题已解决,我必须检查帐户链接设置中的复选框,其中显示“Google 通过 HTTP 基本身份验证标头传输 ClientId ans secret”

于 2020-09-11T17:13:50.437 回答