我想要实现的是在调用默认欢迎意图之前进行用户身份验证(帐户链接)。
(我知道在设计文档中建议不要要求用户进行身份验证,但这是我们的行动所必需的)
我们有一个未部署的动作,我在模拟器中测试过。对话流程是
- 提示用户登录,即 new SignIn()
- 提示他们创建新项目
- 该项目已保存,用户收到成功/失败响应并继续
在 DialogFlow 中,我有一个默认的欢迎意图(提示用户创建一个新项目),一个捕获项目的意图。
我们的履行意图
app.intent('ask_for_sign_in_detail', (conv) => {
conv.ask(new SignIn());
});
app.intent('ask_for_sign_in_confirmation', (conv, params, signin) => {
if (signin.status !== 'OK') {
return conv.ask('You need to sign in before using the app.');
}
// const access = conv.user.access.token;
// exchange access.token for jwt from backend
return conv.ask('Great! Thanks for signing in.');
});
app.intent('Default Welcome Intent - fallback', (conv) => {
createItem(conv);
});
在 Google Assistant 集成下的 DialogFlow 中,我要求在默认欢迎意图之前需要登录。
当我在模拟器中进行测试时,我可以看到在帐户链接下没有任何信息(即没有帐户链接),并且有一条消息指出“没有帐户与 Google 相关联。开始帐户链接的测试对话。
开始对话我收到以下错误:
无法识别您的声音,因此无法将您连接到 Talkatoo。检查 Google Home 应用中的 Voice Match 设置。
我不确定我在尝试使用 Google 帐户对用户进行身份验证时误入歧途。