我使用履行webhook整合DialogFlow和LINE。当文本位于回复的{
"speech": "your number is 1234"
}
字段中时,我能够成功将消息回复给用户的LINE。
{
"data": {
"line": {
"replyToken": "e4050bccd34b52...b119069d27bb5",
"messages": [
{
"text": "Hi",
"type": "text"
}
]
}
}
}
但是,如果我按照文档添加LINE特定响应,则不工作,这意味着它只会回复任何内容。
sed
这意味着我只能回复一条短信,而不能回复其他丰富的短信。
我做错了什么,或者是DialogFlow的问题?
答案 0 :(得分:0)
我终于想出了怎么做! 问题中的响应格式不正确。正确的格式如下:
{
'messages': [
<message object>,
<message object>
]
}
您可以参考message object了解可以使用的类型。 需要注意的一点是类型4,您只需使用LINE中指定的有效负载。
例如,
{
'messages': [
{
'type': 0,
'speech': 'ABC'
},
{
"type": 4,
"payload": {
"line": {
"type": "template", "altText": "This is a buttons template",
"template": {
"type": "buttons",
"thumbnailImageUrl": "https://images.justlanded.com/event_images/Tets/photo/events_original_45195_42919.jpg",
"imageAspectRatio": "rectangle",
"imageSize": "cover",
"imageBackgroundColor": "#FFFFFF",
"title": "Menu",
"text": "Please select",
"defaultAction": {
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/123"
},
"actions": [
{
"type": "postback",
"label": "Buy",
"data": "action=buy&itemid=123"
},
{
"type": "postback",
"label": "Add to cart",
"data": "action=add&itemid=123"
},
{
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/123"
}
]
}
}
}
}
]
}