wie Benutzer Antwort auf eine spezifische chatbot Nachricht in node.js verfolgen

stimmen
2

Ich frage mich, wie ein Benutzer Antwort auf eine spezifische Frage chatbot zu fangen? Ich meine zum Beispiel, wenn der Benutzer der chatbot für das Wetter fragt und die chatbot reagiert, indem er den Benutzer auf, in welcher Stadt zurück. Ich würde dann verfolgen möchten, was der Benutzer auf diese Frage antwortet. So dass die Stadt könnte für den Aufruf eines Wetter api für die Stadt verwendet werden. Ich weiß nicht, wie der Benutzer die Antwort auf diese Frage zu verfolgen. Weiß jemand, ob und wie das möglich ist?

Veröffentlicht am 22/12/2016 um 20:38
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

..ich löste es durch eine globale Variable eingestellt wird, wenn die chatbot die Frage stellt

global.variable = 1;

Wenn der Benutzer das eingehende SMS Ereignis antwortet gebrannt und ich kann überprüfen, ob die globale Flag gesetzt ist. Dies weist darauf hin, dass dies die Antwort des Benutzers, nachdem die Frage gestellt wurde. Ich kann dann den Nachrichtentext Stadt von dieser Nachricht erhalten. Dies funktioniert in meinem Fall in Ordnung, aber wenn jemand eine bessere Alternative lass es mich kennt weiß,

Beantwortet am 24/12/2016 um 05:55
quelle vom benutzer

stimmen
1

So dass mehrere Benutzer gleichzeitig die chatbot zugreifen können, ist es am besten den Überblick über jeden Benutzer zu halten, und jedes Gespräch Zustand des Benutzers. Im Fall des Messenger-API, das wäre:

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)
}

Dann haben Sie die Antwort für jeden Benutzer in dem gespeicherten usersObjekt. Sie können auch eine Datenbank speichern diese verwenden.

Beantwortet am 11/04/2017 um 05:02
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more