我的 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
我需要澄清以下几点
- 除了使用 Google 登录之外,我能否在 Actions on Google 中实现与其他 Oauth 服务器的帐户链接?
- 我在 Google 控制台上的代码或 Dialogflow 和 Actions 中是否缺少任何其他步骤?
非常感谢这里的帮助。如果提供的信息不充分,请告诉我。