-2

私はノードにメッセンジャーボットを構築しています。ユーザーの入力データを収集して会話をしたり質問したりしたいが、私が持っているコードはうまくいかない。動作しない部分は、同じコードを入力するとブロックされた場合にのみ次のブロックに進みます。 2番目の配列は最初のif文の後にテキストをキャプチャしません。それを行うより良い方法はありますか?誰かがコードを提供できますか?ノードjsのフェイスブックメッセンジャーボットapiでユーザーからデータを収集する方法

私のコードは以下の通りです。私は私が見ると思う主な問題がある

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動作しない部分は、同じコードを入力した場合にブロックされた場合にだけ次のelseブロックに進みます。 2番目の配列は最初のif文の後にテキストをキャプチャしません。 – Now2407

答えて

0

::私が欲しいのは、このiimageのようである

  1. スタート()ときにテキスト== HI
  2. のみ呼び出されます数が定義されていません
  3. 配列 'arr'には移動していません、awnswers

次の方法でこれらの問題を解決することができます。varカウント= 0のような数を定義するすべてのメッセージ

  • のスタートを()を呼び出す

    1. 。あなたのファイルの一番上にある、var currentbotの隣にあります。
    2. awnswers.push(text);
  • 関連する問題