所以我正在测试Dialogflow,我的第一个问题之一就是:我的机器人如何知道它与谁交谈?我需要识别用户并尽可能长时间地保留该信息。基本情景是:
在文档中找不到任何关于它的内容(也许我在找错了地方)。
将会有一些集成,如Messenger,Viber,Telegram。我不知道,也许那些API在用户上添加了一些独特的信息?... 谢谢你的帮助!
答案 0 :(得分:2)
抱歉,我知道已经有一段时间了,但也许这会帮助别人。
要获取用户ID,请转到Fulfillment选项卡,启用编辑器并使用如下函数:
let r = request.body.originalDetectIntentRequest
//this makes sure that you're on an integration
if (r["source"]){
return r.payload.data.sender.id;
}
答案 1 :(得分:1)
流行音乐,
会话内置于对您的履行服务的DialogFlow请求中,如果您检查有效负载,您将找到sessionId,对于同一客户端,它会保持不变,直到它到期为止。
但是,如果您要从可以连接到DialogFlow的任何客户端(例如Messenger)中识别用户,那么从相同的请求负载到您,您将注意到有一个名为 originalRequest 的对象,仅在来自这些客户的请求时才可用。
您可以对这些用户的回复进行个性化,例如using their FB firstname in a message to them。