У меня есть много функций обратной передачи в коде app.POST.
Но я хочу, чтобы бот следовал по порядку.
Как мне сделать этот заказ?
Это мой полный код.
app.post('/webhook/', function (req, res) {
let messaging_events = req.body.entry[0].messaging
for (let i = 0; i < messaging_events.length; i++) {
let event = req.body.entry[0].messaging[i]
let sender = event.sender.id
if (event.message && event.message.text) {
let text = event.message.text
if (text === 'hello') {
sendGenericMessage(sender)
}
}
if (event.postback) {
let text = JSON.stringify(event.postback)
sendTextMessage(sender, "write city name")
}
if (event.message && event.message.text) {
let text = event.message.text
if (text === 'Castillo de la Alameda') {
information().then((bd) => {
var bd2 = bd;
var model = [];
for (i = 0; i < Object.keys(bd2).length; i++) {
model[i] = bd2[i].title;
}
if (model.includes(text)) {
sendButtonMessage(sender);
if (event.postback) {
let text = JSON.stringify(event.postback);
var cc = model.indexOf(text);
var hour = bd2[cc].organization.schedule;
sendTextMessage(sender, `${hour}`);
}
}
});
}
}
}
res.sendStatus(200);
})
Это первое сообщение от GenericMessage
if (text === 'hello') {
sendGenericMessage(sender)
}
}
if (event.postback) {
let text = JSON.stringify(event.postback)
sendTextMessage(sender, "write city name")
}
А потом я хочучтобы ButtonMessage следовал за его обратной передачей.
Поэтому я помещаю эту обратную передачу внутри ButtonMessage.
Но когда я нажимаю обратную передачу Button, она читает обратную передачу Generic.
Как я могу решить эту проблему?
if (model.includes(text)) {
sendButtonMessage(sender);
if (event.postback) {
let text = JSON.stringify(event.postback);
var cc = model.indexOf(text);
var hour = bd2[cc].organization.schedule;
sendTextMessage(sender, `${hour}`);
}
}
И это моя функция сообщения кнопки.
Общая функция та же, что и у функции Buttonmessage
function sendButtonMessage(sender) {
let messageData = {
"attachment":{
"type":"template",
"payload":{
"template_type":"button",
"text":"What do you want to do next?",
"buttons":[{
"type": "postback",
"title": "Postback",
"payload": "Payload for second element in a generic bubble"
}
]
}
}
};
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: { access_token: PAGE_ACCESS_TOKEN },
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending messages: ', error)
} else if (response.body.error) {
console.log('Error: ', response.body.error)
}
})
}