所以我在Facebook Messenger Bot上工作。 我想知道我可以找到像
这样的问题的答案Bot:输入您的电子邮件
用户:输入电子邮件
Bot:添加了地址
我的代码看起来像Facebook
中的示例应用app.post('/webhook', function (req, res) {
var data = req.body;
// Make sure this is a page subscription
if (data.object == 'page') {
// Iterate over each entry
// There may be multiple if batched
data.entry.forEach(function(pageEntry) {
var pageID = pageEntry.id;
var timeOfEvent = pageEntry.time;
// Iterate over each messaging event
pageEntry.messaging.forEach(function(messagingEvent) {
if (messagingEvent.optin) {
receivedAuthentication(messagingEvent);
} else if (messagingEvent.message) {
receivedMessage(messagingEvent);
} else if (messagingEvent.delivery) {
receivedDeliveryConfirmation(messagingEvent);
} else if (messagingEvent.postback) {
receivedPostback(messagingEvent);
} else {
console.log("Webhook received unknown messagingEvent: ", messagingEvent);
}
});
});
// Assume all went well.
//
// You must send back a 200, within 20 seconds, to let us know you've
// successfully received the callback. Otherwise, the request will time out.
res.sendStatus(200);
}
});
答案 0 :(得分:0)
您可以为其发送电子邮件提示的ID设置一个标志,然后在他们回复后检查是否是电子邮件,如果是,则保存并回送给他们。< / p>
答案 1 :(得分:0)
如果机器人是基于问题/答案,我通常做的处理响应跟踪的做法是将机器人视为有限状态自动机。将机器人可以处于的每个“状态”分配给某个唯一的状态标识符,并使用所述状态标识符来确定用户正在回复的内容。你也可以存储回调而不是状态id,但是高级别的行为也会相同。
<小时/>
首先定义有限自动机。在这种情况下,我们假设它是:
0 --> 1 --> 2
其中0表示新用户,1表示等待电子邮件回复,2表示用户成功完成注册。
<小时/>