Bots 如何将有效负载中的回发数据提取到Dialogflow V2中的参数
我一直在努力解决这个问题,我希望有人能帮我解决这个问题。我正在使用Dialogflow控制台创建一个机器人,它通过提供用户的位置和描述事件来请求用户报告“某物”。该机器人与Facebook Messenger集成。我的其中一个意图有后续意图,也有后续意图,如:Bots 如何将有效负载中的回发数据提取到Dialogflow V2中的参数,bots,dialogflow-es,Bots,Dialogflow Es,我一直在努力解决这个问题,我希望有人能帮我解决这个问题。我正在使用Dialogflow控制台创建一个机器人,它通过提供用户的位置和描述事件来请求用户报告“某物”。该机器人与Facebook Messenger集成。我的其中一个意图有后续意图,也有后续意图,如: intent 1 | intent 2 | intent 3 意图1请求用户的位置,意图2检索用户的位置并要求用户描述位置。Intent3应该拥有上下文中的所有数据,因为它是由webhook实现的
intent 1
|
intent 2
| intent 3
意图1请求用户的位置,意图2检索用户的位置并要求用户描述位置。Intent3应该拥有上下文中的所有数据,因为它是由webhook实现的。所有数据都应该发布到我的服务器上。问题是,我无法获取位置数据(可能是lat和long),我注意到在触发事件后,数据以以下格式返回到FACEBOOK\u位置:
{
"originalDetectIntentRequest": {
"source": "facebook",
"payload": {
"postback": {
"data": {
"lat": 14.556761479425,
"long": 121.05444780425
},
"payload": "FACEBOOK_LOCATION"
},
"sender": {
"id": "1588949991188331"
}
}
}
我的问题是如何将有效负载数据携带到Dialogflow意图参数中,以便在触发webhook之前在上下文中携带它们?我希望我已经解释清楚了。谢谢大家的帮助。您可以使用输出上下文保存参数
{
"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":{ }
}
保存参数后,在后续请求中,可以通过访问保存的上下文来访问参数。LifePanCount将决定此上下文中有多少后续调用是有效的。因此,在上述情况下,例如,在意图1中保存的参数将在意图5之前可用(如果您还有2个后续意图)
你可以关注更多细节
我个人喜欢使用客户端库来开发Webhook,因为它们易于使用,功能强大,并且减少了JSON操作错误。如果您喜欢使用基于NodeJs的客户端,您可以按照此操作。详细介绍Abhinav的答案(并指出我在这个问题上的原因)。您需要确保您提取的实体有足够的生命周期用于webhook实现调用。 您可以通过编辑数字并保存来调整计数 LifePanCount将决定此上下文中有多少后续调用是有效的。-阿比纳夫
如果您的参数没有显示在输出上下文中,则它们可能没有适当的寿命 多谢各位。这个答案引导我在webhook响应中使用“OutputContext”来找到解决方案。谢谢你!很高兴听到这个消息。我也选择了使用基于NodeJS的客户端。我发现我使用它有很大的灵活性。非常感谢你。我有一个问题,我试图将处理意图的函数分离到不同的文件(模块)中,并要求像这样插入主js文件:
intentMap.set('Default Welcome Intent',)
但是我得到了承诺错误。我该如何解决这个问题?最好创建一个新问题;):)谢谢我解决了问题!我这里还有一个给你::)谢谢!