我正在为我的机器人使用 Wit.ai for 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']
然后您可以格式化并附加这些选项。