Wit.ai如何添加动态快速回复

时间:2017-01-07 07:41:29

标签: node.js facebook facebook-messenger wit.ai facebook-messenger-bot

以下是Wit.ai doc中的句子:https://wit.ai/docs/recipes#categorize-the-user-intent

如何添加动态快速回复

  

如果您想以编程方式创建快速回复,则需要执行此操作   使用Bot Executes来触发将要创建的一侧的功能   这些快速回复。

好的,我可以轻松地做到这一点!

  

然后,您可以将它们存储在您的上下文中。在里面    发送功能在您身边,如果您在上下文中有它们   用机器人的答案发送给他们。

有人可以为我翻译最后一句话因为我不明白我所做的事。我想在我的Node.js bot中使用Wit.ai添加动态快速回复 谢谢

1 个答案:

答案 0 :(得分:5)

我正在使用Wit.ai为Facebook Messenger为我的机器人做这样的事情。

在我的操作中,我将动态快速回复存储在上下文中:

myAction({ context, text, entities }) {
  context.quick_replies = [
    { 
      title: 'Option A',
      content_type: 'text',
      payload: 'empty'
    },
    { 
      title: 'Option B',
      content_type: 'text',
      payload: 'empty'
    },
  ]
}

然后在send()中,我附上对我的短信的快速回复:

send(req, res) {
  await textMessage(messenger_id, res.text, req.context.quick_replies)
}

textMessage()看起来像这样:

export async function textMessage(recipientId, text, quick_replies = null) {
  const messageData = {
    recipient: { id: recipientId },
    message: {
      quick_replies: quick_replies,
      text: text
    }
  }

  await request({
    url: 'https://graph.facebook.com/v2.6/me/messages',
    qs: { access_token: FB_PAGE_TOKEN },
    method: 'POST',
    json: messageData
  })
}

基本上,我自己创建并附上快速回复。

如果您在Wit.ai中有静态快速回复,那么您将以send()格式获取这些回复:res.quickreplies = ['Yes', 'No']然后您可以格式化并附加这些选项。