我正在使用DialogFlow开发一个Google家庭扬声器应用。
我的情况是,如果用户登录,则该应用将显示用户的特定信息,或者如果用户未登录,则应显示常规信息。
我填写了帐户链接部分(链接类型:OAuth)
(DialogFlow->集成-> Google助手-> MANAGE ASSISTANT APP->帐户链接)
我还在DialogFlow的Google助手集成选项窗口中取消选中了“需要登录”。
我的意图代码使用的是conv.ask(),而不是conv.close()
但是当我在模拟器上运行测试时 它表明未链接,对话结束后,您可以使用Google Home应用设置帐户。
我要做的是即使用户尚未完成帐户关联,该用户也可以使用该应用程序。 (用户登录应该是可选的,而不是强制性的)
有什么想法吗?
谢谢。
已编辑
我正在使用“默认欢迎意图”并选中“为此意图启用webhook调用”。
我的意图看起来像这样。在设置帐户关联之前,效果很好。
app.intent('Default Welcome Intent', conv => {
conv.ask('Welcome');
});
和我的屏幕截图。 Screenshot of Actions on Google simulator (很抱歉,屏幕截图中没有英文文本。它告诉您需要帐户链接并终止了对话。)
这是Google模拟器的“调试”标签上“操作”中的日志消息。
{
"request": {
"response": "テスト用アプリ とリンクしていません。Google Home アプリからテスト用アプリ と Google アカウントをリンクできます。",
"expectUserResponse": false,
"conversationToken": "GidzaW11bG...",
...
"debugInfo": {
"sharedDebugInfoList": [
{
"name": "Account Linking Url",
"debugInfo": "https://gala-demo.appspot.com/app?login_hint=..." // removed sensitive information from the string
"subDebugEntryList": []
}
]
},
"visualResponse": {
"visualElementsList": [],
"suggestionsList": [],
"agentLogoUrl": ""
},
"clientError": 0,
"is3pResponse": 1
},
"response": {
"response": "テスト用アプリ とリンクしていません。Google Home アプリからテスト用アプリ と Google アカウントをリンクできます。",
"expectUserResponse": false,
"conversationToken": "GidzaW11bG...",
"visualResponse": {
"visualElementsList": [],
"suggestionsList": [],
"agentLogoUrl": ""
},
"clientError": 0,
"is3pResponse": 1
},
"debug": {
"sharedDebugInfoList": [
{
"name": "Account Linking Url",
"debugInfo": "https://gala-demo.appspot.com/app?login_hint=...", // removed sensitive information from the string
"subDebugEntryList": []
}
]
},
"errors": []
}
答案 0 :(得分:1)
我发现,当我从DialogFlow的集成菜单中运行模拟器时, 模拟器从我设置了“需要登录”的旧版本开始。 当我从“ Google TEST上的操作”部分运行模拟器时,它将以当前设置开始(不需要登录)。