hogyan kell nyomon követni a felhasználó választ egy adott chatbot üzenetet node.js

szavazat
2

Vajon hogyan fog egy felhasználó választ egy adott chatbot kérdés? Úgy értem, például ha a felhasználó kéri a chatbot az időjárás és a chatbot reagál vissza kérve a felhasználó melyik városban. Ezt követően azt szeretnék nyomon követni, amit a felhasználó válaszol a kérdésre. Ahhoz, hogy a város lehetne használni hív időjárás api a város. Nem tudom, hogyan kell nyomon követni a felhasználó választ erre a kérdésre. Tudja valaki, és ha igen, hogyan lehetséges ez?

A kérdést 22/12/2016 20:38
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

..I oldotta meg úgy, hogy egy globális változó a chatbot felteszi a kérdést

global.variable = 1;

Amikor a felhasználó válaszol a bejövő szöveges üzenet az esemény akkor és tudom ellenőrizni, hogy a globális jelző be van állítva. Ez azt jelzi, hogy ez a felhasználó válaszát követően a kérdést tették fel. Tudok majd kap az üzenet szövegét várost az üzenetet. Ez jól működik, az én esetemben, de ha valaki tudja a jobb alternatíva kérem tudassa velem

Válaszolt 24/12/2016 05:55
a forrás felhasználó

szavazat
1

Annak érdekében, hogy több felhasználó érheti el a chatbot egyszerre, akkor a legjobb, hogy nyomon követhesse az egyes felhasználók és az egyes felhasználók beszélgetés állapotban. Abban az esetben, a Messenger API, ez lenne:

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

Akkor lesz a válasz minden egyes felhasználó számára tárolt usersobjektumot. Ön is használja egy adatbázisban tárolja ezt.

Válaszolt 11/04/2017 05:02
a forrás felhasználó

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