-2

노드에 메신저 봇을 만들고 있습니다. 사용자 입력 데이터를 수집하고 대화를하거나 질문을하고 싶지만, 가지고있는 코드는 작동하지 않습니다. 작동하지 않는 부분은 동일한 코드를 타이핑하면 블럭이면 다음 단계로 계속 진행됩니다. 두 번째 배열은 첫 번째 if 문 다음에 텍스트를 캡처하지 않습니다. 그것을 할 수있는 더 좋은 방법이 있습니까? 누군가 코드를 제공 할 수 있습니까?페이스 북 메신저로 사용자로부터 데이터를 수집하는 방법 노드 js의 메신저 봇 API

내 코드는 다음과 같습니다. 내가 원하는이 iimage에서 같다 :

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

내가 볼 생각의 주요 문제

screenshot은 다음과 같습니다

  1. 시작은() 경우에만 텍스트 == 안녕하세요
  2. 라고 개수가 정의되지 않았습니다.
  3. 배열 'arr'로 푸시하지 않았습니다. awnswers
VAR 수 = 0과 같은 수를 정의 모든 메시지
    1. 호출 시작(); : 0

      당신은 이러한 문제를 해결할 수 있습니다 파일 상단의 var currentbot 옆

    2. awnswers.push (text);