我怎样才能利用facebook messenger的导航模板和wit.ai?
在机智的情况下,我使用结构化消息创建了一个功能齐全的机器人。
我遇到的问题是,当我将智能机器人连接到Facebook时,结构化消息不会消失。
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
发送消息时,您必须将结构化消息的元素发送到Facebook。 Wit.ai将在响应对象中设置结构化元素,您有责任将其传递给facebook send api。
例如快速回复wit.ai将其作为回复发送[' quickreplies']您必须访问它并将其作为带有关键quick_replies和额外元素的数组发送到Facebook
def send_text_fb_message_with_quickreplies(recipientId, msg, quickreplies)
qr = []
quickreplies.each do |i|
reply_hash = {}
reply_hash['content_type'] = 'text'
reply_hash['title'] = i
reply_hash['payload'] = i
qr.push(reply_hash)
end
Bot.deliver(
recipient: {
id: recipientId
},
message: {
text: msg,
quick_replies: qr
}
)
end
send_text_fb_message_with_quickreplies(request['sender_id'], response['text'], response['quickreplies'])
使用类似的代码,您可以将quickreplies从wit.ai转换为facebook兼容的quickreplies
答案 1 :(得分:0)
我根据您正在使用的库添加一些自定义答案:
在库中,您使用的是更改https://github.com/hunkim/Wit-Facebook/blob/master/facebook.js文件,并且是函数fbMessage
检查是否存在msg.quickreplies,如果它存在则进行处理并使其与facebook兼容格式,就像我在上面的ruby代码中所做的那样。
发布更改
message: {
text: msg,
},
到
message: {
text: msg,
quick_replies: object_you_created
}