【发布时间】:2017-07-01 12:31:09
【问题描述】:
此讨论适用于任何集成,但作为示例,我将讨论 Messenger。另外,为了提供上下文,我的后端是用 Java 编写的。
根据我的阅读,对于自定义场景(例如帐户链接),我们不应该直接使用 API.AI。相反,Messenger 设置中的“回调 URL” (developer.facebook.com) 应该指向我们自己的托管应用,而后者又调用api.api.ai/v1/query。对吗?
其次,我在 API.AI 中的 Intent 已经勾选了Use webhook。我假设逻辑流程如下:
Messenger → my app (webhook for Messenger) → api.ai → my app (webhook for api.ai)
显然情况并非如此——API.AI 从不调用 webhook。
这是我发送 到 API.AI 的 JSON:
{"query":"hey","originalRequest":{"source":"facebook","data":{"object":"page","entry":[{"id":"xxx","time":yyy,"messaging":[{"sender":{"id":"zzz"},"recipient":{"id":"xxx"},"timestamp":yyy,"message":{"mid":"aaa","seq":bbb,"text":"hey"}}]}]}},"v":"20170704","sessionId":"1","lang":"en"}
这是来自 API.AI的响应:
{
"id": "xxx",
"timestamp": "yyy",
"lang": "en",
"result": {
"source": "agent",
"resolvedQuery": "hey",
"speech": "",
"action": "",
"parameters": {
"greeting": "hey"
},
"metadata": {
"inputContexts": [],
"outputContexts": [],
"intentName": "greeting",
"intentId": "zzz",
"webhookUsed": "true",
"webhookForSlotFillingUsed": "false",
"contexts": []
},
"score": 1.0
},
"status": {
"code": 200,
"errorType": "success"
},
"sessionId": "1"
}
这是否意味着我的应用应该调用 webhook(这是同一个应用但不同的端点)本身?
【问题讨论】:
标签: dialogflow-es