Je me demande comment attraper une réponse utilisateur à une question chatbot spécifique? Je veux dire par exemple si l'utilisateur demande au chatbot pour le temps et l'chatbot répond arrière en demandant à l'utilisateur dans quelle ville. Je voudrais ensuite de tracer ce que l'utilisateur répond à cette question. Alors que la ville pourrait être utilisé pour appeler un api météo pour la ville. Je ne sais pas comment suivre la réponse de l'utilisateur à cette question. Est-ce que quelqu'un sait si et comment cela est possible?
Comment tracer la réponse de l'utilisateur à un message spécifique dans chatbot Node.js
..Je résolu en définissant une variable globale lorsque la chatbot pose la question
global.variable = 1;
Lorsque l'utilisateur répond l'événement de message texte entrant est tiré et je peux vérifier si l'indicateur global est défini. Cela indique que ceci est la réponse de l'utilisateur après a posé la question. Je peux alors obtenir la ville du texte du message de ce message. Cela fonctionne très bien dans mon cas, mais si quelqu'un sait une meilleure alternative s'il vous plaît laissez-moi savoir
Alors que plusieurs utilisateurs peuvent accéder au chatbot simultanément, il est préférable de garder une trace de chaque utilisateur, et l'état de conversation de chaque utilisateur. Dans le cas de l'API Messenger, ce serait:
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)
}
Ensuite , vous aurez la réponse pour chaque utilisateur stocké dans l' usersobjet. Vous pouvez également utiliser une base de données pour mémoriser.













