Я создал ботовую чату с потоком, используя FB messenger, Wit.ai и node.js. Он работает хорошо, но для того, чтобы взаимодействие выглядело более естественным, я хочу, чтобы мой бот остановился на короткое время и, кажется, печатал каждый из своих ответов.Добавление пузырька действия «typing_on» перед каждым откликом от Wit.ai chatbot
Я хочу, чтобы пузырь «набрав» был отображен ненадолго перед каждым ответом, который посылает мой бот, в идеале, чтобы определить время видимости пузыря до отправки ответа. На данный момент есть разделы моего разговора, где бот отправляет последовательные сообщения, и все они отправляются слишком быстро сразу.
FB Messenger Send API сообщает, что either the 'message' or 'sender_action' property must be set. Я попытался установить, как например, так:
const fbMessage = (id, text) => {
if(fruits.apples.indexOf(text) >= 0 || fruits.oranges.indexOf(text) >= 0) {
var body = JSON.stringify({
recipient: { id },
"sender_action":"typing_on",
message: {
attachment: {
"type": "image",
"payload": {
"url": text
}
}
},
});
} else {
var body = JSON.stringify({
recipient: { id },
"sender_action":"typing_on",
message: { text },
});
}
const qs = 'access_token=' + encodeURIComponent(FB_PAGE_TOKEN);
return fetch('https://graph.facebook.com/me/messages?' + qs, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body,
})
.then(rsp => rsp.json())
.then(json => {
if (json.error && json.error.message) {
throw new Error(json.error.message);
}
return json;
});
};
Но я получаю следующее сообщение об ошибке:
я не уверен, что мне нужно сделать, - я предполагаю, что я имею получил настройку бот-ответа 'sender_action', которая срабатывала перед каждым диалоговым ответом, но я не знаю, как это сделать.