-2

Я создаю бот-посланника в узле. Я хочу, чтобы он собирал входные данные пользователя, беседовал или задавал вопросы, но код, который у меня есть, не работает. часть, которая не работает, остается только следующей, если блок, если я набираю тот же код. и второй массив не захватывает текст после первого оператора if. Есть ли лучший способ сделать это? Может ли кто-нибудь предоставить код?Как собрать данные от пользователя с помощью facebook messenger bot api в узле js

Мой код ниже. то, что я хочу, как в этом iimage:

screenshot

var currentbot = 0; 
var awnswers = []; 
app.post('/webhook', function(req, res) { 
    var events = req.body.entry[0].messaging; 
    for (i = 0; i < events.length; i++) { 
    var event = events[i]; 
    if (event.message && event.message.text) { 
     var text = event.message.text; 
     if (text == "hi") { 
     start(event.message.text, event.sender.id); 
     } 
    } 
    } 
    res.sendStatus(200); 
}); 
var awnswers = []; 

function start(text, id) { 
    if (count == 0) { 
    sendTextMessage('hello lets order!', id); 
    arr.push(text); 
    console.log(awnswers); 
    count = 1; 
    } else if (count == 1) { 
    sendTextMessage('what size do you want?', id); 
    arr.push(text); 
    console.log(awnswers); 
    count = 2; 
    } else if (count == 2) { 
    sendTextMessage('its on its way!', id); 
    arr.push(text); 
    console.log(awnswers); 
    count = 0; 
    } 
} 

function sendTextMessage(messageText, recipientId) { 
    var messageData = { 
    recipient: { 
     id: recipientId 
    }, 
    message: { 
     text: messageText 
    } 
    }; 
    callSendAPI(messageData); 
} 

function callSendAPI(messageData) { 
    request({ 
    uri: 'https://graph.facebook.com/v2.6/me/messages', 
    qs: { 
     access_token: process.env.access_token 
    }, 
    method: 'POST', 
    json: messageData 
    }, function(error, response, body) { 
    if (!error && response.statusCode == 200) { 
     var recipientId = body.recipient_id; 
     var messageId = body.message_id; 
     console.log("Successfully sent generic message with id %s to recipient %s", messageId, recipientId); 
    } else { 
     console.error("Unable to send message."); 
     console.error(response); 
     console.error(error); 
    } 
    }); 
} 
+0

«код у меня не работает» - что именно «не работает»? Есть ли сообщение об ошибке (и номер строки)? StackOverflow не является службой написания кода или отладки. Предоставьте более краткий вопрос. –

+0

@ LambdaNinja часть, которая не работает, остается только следующей, если блок, если я набираю тот же код. и второй массив не захватывает текст после первого оператора if. – Now2407

ответ

0

Основные вопросы, я думаю, что я вижу, являются:

  1. Start() вызывается только когда текст == привет
  2. Счетчик не определен
  3. Вы нажимаете на массив 'arr' not, awnswers

Вы можете исправить это с помощью:

  1. Вызов запуска() на каждое сообщение
  2. Определяя количество как кол вар = 0; в верхней части файла, рядом с var currentbot
  3. awnswers.push (текст);
Смежные вопросы