等待一个Facebook Messenger的机器人的文本答复
我正在写一个Facebook Messenger的机器人,并试图在回发后存储文本回复。 我的意思是我有一个消息,发回一个post,并根据他们select什么选项,他们可以键入一个消息,我存储该文本。 问题是我只想保存这个文本后,他们select一个选项的回发消息。 此外,文本可以是任何东西,所以我不能写一个if语句。
这是我的代码:
app.post('/', function (req, res) { messaging_events = req.body.entry[0].messaging; for (i = 0; i < messaging_events.length; i++) { event = req.body.entry[0].messaging[i]; sender = event.sender.id; if (event.message && event.message.text) { text = event.message.text; if (text == "Start") { sendTextMessage(sender, "Hey User! I'm a bot"); } } else if (event.postback) { // These are for chosing availibility if (JSON.stringify(event.postback) == '{"payload":"postback"}') { setTextMessage(sender, "Postback recieved"); } } }
一切都build立和运行。 但是,收到回发后,我想在完成前等待用户的回复,以便我可以保存文本。 就像我之前说过的那样,它可以是任何意义,我不能只是写一个if语句,就像我对“开始”所做的那样。 我也只想在点击回发button后保存文本。
我正在考虑添加一个while循环,并在完成回发函数之前等待文本被接收,但无法弄清楚。
那么在我发送邮件后,如何等待文本呢?
任何帮助表示赞赏,谢谢!
我也尝试了很长时间来find一种方法来存储由发件人使用消息ID和消息时间发送的文本无济于事。 唯一的办法是为我声明一个名为“state”的全局variables,然后在发送的每条消息的末尾,我将variables“state”的值更改为“001”或“002”。 因此,如果我想访问我发送的特定消息的答复,我会把if (state === '001')
。 这里是一个例子:
var state = '000'; // if user sends me 'I want dogs' sendTextMessage(sender, "How many dogs?"); state = '001'; // if user sends me 'I want cats' sendTextMessage(sender, "How many cats?); state = '002'; /* now if I want to access the user's response to how many cats they want, I simply write in an if statement: if (state === '002' && /^\d+$/.test(text)) { var numberOfCatsWanted = text } // in this last part I essentially write 'if the state is '002' and the text contains numbers then a new variable will store the value of the text
我希望这有帮助!
基本上没有办法做你的要求。 所以你唯一能做的就是要求用户用前缀中的某些字符input文本,例如用'?' 或“#”或其他你可以parsing的东西。
- 在Facebook Messenger Bots中发送多个回复消息
- 如何解决,如果EAI_AGAIN错误发生在Facebook Messenger平台上?
- 将使用Microsoft Bot Framework构build的Bot连接到其他连接器/通道
- Messenger Bot“睡眠模式”getaddrinfo
- 电报bot – telegraf vs telebot
- 将HTML快照提供给Moz SEO机器人
- fb messenger bot总是在webhooksvalidation时返回空json
- 使用bot框架和Vega库在聊天机器人中显示图表
- 创build支持Microsoft Bot Framework中的两个LUIS应用程序的bot