用wit.ai创建结构化消息

时间:2016-10-08 18:42:47

标签: facebook artificial-intelligence bots facebook-messenger wit-ai

我怎样才能利用facebook messenger的导航模板和wit.ai?

在机智的情况下,我使用结构化消息创建了一个功能齐全的机器人。

我遇到的问题是,当我将智能机器人连接到Facebook时,结构化消息不会消失。

有什么方法可以解决这个问题吗?

2 个答案:

答案 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 
}