我一直想设法解决这个问题,希望在那里的人能帮助我。我正在使用Dialogflow控制台创建一个机器人,该机器人通过提供他/她的位置并描述事件来请求用户报告“某事”。该机器人与Facebook Messenger集成在一起。我的意图之一是跟进意图,也有跟进意图,例如:
intent 1
|
intent 2
| intent 3
意图1请求用户的位置,意图2检索用户的位置并要求用户描述该位置。意图3应该将所有数据放在上下文中,因为它由Webhook满足。所有数据都应该发布到我的服务器上。问题是我未能获取位置数据(可能是经纬度的和较长的),我注意到在触发事件FACEBOOK_LOCATION之后,数据以以下格式返回:
{
"originalDetectIntentRequest": {
"source": "facebook",
"payload": {
"postback": {
"data": {
"lat": 14.556761479425,
"long": 121.05444780425
},
"payload": "FACEBOOK_LOCATION"
},
"sender": {
"id": "1588949991188331"
}
}
}
我的问题是如何将有效负载数据携带到Dialogflow意向参数中,以便在上下文中携带它们,直到触发Webhook为止?我希望我已经解释清楚了。感谢您的帮助。
答案 0 :(得分:1)
您可以使用输出上下文来保存参数。
{
"fulfillmentText":"This is a text response",
"fulfillmentMessages":[ ],
"source":"example.com",
"payload":{
"google":{ },
"facebook":{ },
"slack":{ }
},
"outputContexts":[
{
"name":"context name",
"lifespanCount":5,
"parameters":{
"param":"param value"
}
}
],
"followupEventInput":{ }
}
保存参数后,在后续请求中,可以通过访问已保存的上下文来访问参数。 lifespanCount将确定此上下文有效的后续调用次数。所以在上面,例如。保存在意图1中的参数将在意图5之前可用(如果您还有2个后续意图) 您可以关注更多详细信息here。
我个人喜欢使用客户端库来开发Webhooks,因为它们易于使用,功能强大并减少了JSON操作错误。如果您想使用基于NodeJs的客户端,则可以遵循此link。
答案 1 :(得分:0)