Ik vraag me af hoe je een gebruiker antwoord op een specifieke chatbot vraag op te vangen? Ik bedoel, bijvoorbeeld als de gebruiker de chatbot voor het weer vraagt en de chatbot reageert terug door te vragen de gebruiker in welke stad. Ik zou dan graag op te sporen wat de gebruiker reageert op die vraag. Zodat de stad kan worden gebruikt voor het bellen van een weer api voor de stad. Ik weet niet hoe de gebruiker antwoord op deze vraag te volgen. Weet iemand of en hoe dit mogelijk is?
hoe gebruiker antwoord herleiden tot een specifiek chatbot bericht node.js
bron van user user3857472
In andere talen...
..Ik opgelost door het instellen van een globale variabele wanneer de chatbot stelt de vraag
global.variable = 1;
Wanneer de gebruiker antwoordt het binnenkomende SMS-bericht event wordt afgevuurd en ik kan controleren of de wereldwijde vlag is ingesteld. Dit geeft aan dat dit de gebruiker antwoord na de vraag werd gesteld. Ik kan krijgen dan de tekst van het bericht stad van die boodschap. Dit werkt prima in mijn geval, maar als iemand weet een beter alternatief laat het me weten
Zodat meerdere gebruikers tegelijkertijd toegang tot de chatbot, is het best om bij te houden van elke gebruiker te houden, en elke gebruiker gesprek staat. In het geval van de Messenger API, zou dit zijn:
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)
}
Dan krijg je het antwoord voor elke gebruiker opgeslagen in het hebben usersobject. U kunt ook een database gebruiken om dit op te slaan.