2016-12-22 4 views
2

특정 chatbot 질문에 대한 사용자 응답을 어떻게 잡을 수 있습니까? 예를 들어, 사용자가 챠봇 봇에 날씨를 요청하면 챠봇 봇은 사용자에게 어떤 도시가 있는지 물어 봄으로써 응답합니다. 그런 다음 사용자가 해당 질문에 응답하는 내용을 추적하고 싶습니다. 도시가 날씨 API를 호출하는 데 사용될 수 있습니다. 그 질문에 대한 사용자 응답을 추적하는 방법을 모르겠습니다. 이게 가능한지 누구하고 어떻게 알 수 있습니까?node.js의 특정 chatbot 메시지에 대한 사용자 응답을 추적하는 방법

답변

1

여러 사용자가 동시에 대화방에 액세스 할 수 있도록 각 사용자와 각 사용자의 대화 상태를 추적하는 것이 가장 좋습니다. 메신저 API의 경우,이는 다음과 같습니다

const users = {} 
const nextStates = { 
    'What country are you in?': 'What city are you in?', 
    'What city are you in?': 'Let me look up the weather for that city...' 
} 
const receivedMessage = (event) => { 
    // keep track of each user by their senderId 
    const senderId = event.sender.id 
    if (!users[senderId].currentState){ 
     // set the initial state 
     users[senderId].currentState = 'What country are you in?' 
    } else { 
     // store the answer and update the state 
     users[senderId][users[senderId].currentState] = event.message.text 
     users[senderId].currentState = nextStates[users[senderId.currentState]] 
    } 
    // send a message to the user via the Messenger API 
    sendTextMessage(senderId, users[senderId].currentState) 
} 

그런 다음 당신이 users 객체에 포함 된 각 사용자에 대한 답을해야합니다. 데이터베이스를 사용하여이를 저장할 수도 있습니다.

0

.. 난은 사용자가 들어오는 문자 메시지 이벤트가 발생되고 응답 글로벌 플래그가 설정된 경우 내가 확인할 수 있습니다 때 chatbot 질문

global.variable = 1; 

을 요청할 때 전역 변수를 설정하여 그것을 해결. 이것은 질문을 한 후에 사용자 답장임을 나타냅니다. 그러면 그 메시지에서 메시지 텍스트 도시를 얻을 수 있습니다. 제 경우에는 정상적으로 작동하지만 누가 더 좋은 대안을 알고 있다면 알려주십시오