Como seguimiento de la respuesta del usuario a un mensaje específico en Node.js conversacional

votos
2

Me pregunto cómo coger una respuesta del usuario a una pregunta específica conversacional? Me refiero, por ejemplo, si el usuario pide la conversacional para el clima y la posterior conversacional responde preguntando al usuario en la cual la ciudad. Después me gustaría trazar lo que el usuario responde a esa pregunta. Por lo que la ciudad podría ser utilizado para llamar a una API del tiempo en la ciudad. No sé cómo hacer un seguimiento de la respuesta del usuario a esa pregunta. ¿Alguien sabe si y cómo es esto posible?

Publicado el 22/12/2016 a las 17:38
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
0

..I lo resolvió mediante el establecimiento de una variable global cuando el chatbot hace la pregunta

global.variable = 1;

Cuando el usuario responde al evento de mensaje de texto entrante se dispara y puedo comprobar si se establece el indicador global. Esto indica que esta es la respuesta del usuario después se hizo la pregunta. A continuación, puedo conseguir que la ciudad texto del mensaje de ese mensaje. Esto funciona bien en mi caso, pero si alguien sabe una mejor alternativa por favor hágamelo saber

Respondida el 24/12/2016 a las 02:55
fuente por usuario

votos
1

Para que varios usuarios pueden acceder a la conversacional al mismo tiempo, lo mejor es hacer un seguimiento de cada usuario, y el estado de conversación de cada usuario. En el caso de la API de Messenger, esto sería:

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

A continuación, tendrá la respuesta para cada usuario almacenada en el users objeto. También se puede utilizar una base de datos para almacenar esto.

Respondida el 11/04/2017 a las 02:02
fuente por usuario

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