我正在使用“用于助手的Google登录”进行帐户关联,并实施“仅Google登录”流程。在用户首次调用某个应用程序(例如:“与我的测试应用程序对话”)时,它可以正常工作,要求获得姓名,个人资料图片,来自Google的电子邮件的许可,并成功获取信息。但是当我第二次调用某个应用程序时,它没有响应并在日志中收到错误: “具有帐户链接的应用程序返回了身份验证错误。正在删除存储的OAuth令牌。” 我不明白这里发生了什么,以下是我用作网络挂钩的代码,
const app = actionssdk({
debug: true
})
app.intent('actions.intent.MAIN', (conv) => {
conv.ask(new SignIn('To get your account details'))
conv.ask('Hello')
})
app.intent('Default Welcome Intent', conv => {
conv.ask(`Hello test version`)
})
app.intent('actions.intent.SIGN_IN', (conv, input, signin) => {
if (signin.status === 'OK') {
const payload = conv.user.profile.payload
conv.ask(`I got your account details, ${payload.name}. 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?`)
}
})
答案 0 :(得分:0)
您的应用使用户在每次启动您的应用时登录。因此,如果用户是回访用户(第二次),则系统会尝试删除/重新创建有关该用户的配置文件,因为该用户已经登录。因此,您应采用以下方式编写该用户,使其不会陷入登录流程中第二次。
app.intent('welcome', conv => {
const payload = conv.user.profile.payload;
if (!paylaod) {
return conv.ask(new SignIn('to sign in);
}
conv.ask('hi! ${payload.given_name}, how are you?')
})
这可能对您有用。