Zajímalo by mě, jak se chytit uživatele odpověď na konkrétní otázku Chatbot? Mám na mysli například v případě, že uživatel požádá Chatbot o počasí a Chatbot odpoví zpět tím, že žádá uživatele, pro které ve městě. Pak bych chtěl sledovat, co uživatel odpoví na tuto otázku. Tak, že město by mohla být použita pro volání Povětrnostní API pro město. Nevím, jak sledovat uživatele odpověď na tuto otázku. Ví někdo, zda a jak je to možné?
jak sledovat uživatele odpověď na určitou zprávu v Chatbot Node.js
hlasů
2
2 odpovědí
hlasů 0
0
..I vyřešil nastavením globální proměnné, když Chatbot položí otázku
global.variable = 1;
Když se uživatel odpoví příchozí události textová zpráva je aktivována a mohu zkontrolovat, zda je nastaven příznak global. To znamená, že se jedná o uživatelsky odpověď poté, co tato otázka byla položena. I pak může dostat textovou zprávu město z této zprávy. Tato metoda funguje v mém případě, ale pokud někdo ví, lepší alternativu, prosím dejte mi vědět
hlasů 1
1
Takže více uživatelů může přístup k Chatbot současně, je nejlepší sledovat každého uživatele a konverzace stav každého uživatele. V případě API Messenger, to bude vypadat následovně:
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)
}
Pak budete mít odpověď pro každého uživatele uloženy v usersobjektu. Můžete také použít databázi uložit to.













