Интересно, как поймать пользователь ответ на конкретный вопрос Chatbot? Я имею в виду, например, если пользователь запрашивает Chatbot для погоды и Chatbot отвечает обратно, спрашивая у пользователя, в каком городе. Я бы тогда хотел, чтобы проследить, что пользователь отвечает на этот вопрос. Так что город может быть использован для вызова API погоды для города. Я не знаю, как отслеживать пользовательский ответ на этот вопрос. Кто-нибудь знает, если и как это возможно?
как отследить пользователя ответ на конкретное сообщение Chatbot в Node.js
..Я решил проблему, установив глобальную переменную, когда Chatbot задает вопрос
global.variable = 1;
Когда пользователь отвечает входящее событие текстового сообщения обжигает, и я могу проверить, если глобальный флаг установлен. Это указывает на то, что это пользователь ответ после того, как вопрос был задан. то я могу получить текстовое сообщение города из этого сообщения. Это прекрасно работает в моем случае, но если кто-нибудь знает, что лучшей альтернативы, пожалуйста, дайте мне знать,
Так что несколько пользователей могут получить доступ к Chatbot одновременно, то лучше, чтобы следить за каждым пользователем, и состояние разговора каждого пользователя. В случае API Посланника, это было бы:
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)
}
Тогда вы будете иметь ответ для каждого пользователя хранится в usersобъекте. Кроме того, можно использовать базу данных для хранения этого.













