FBメッセンジャー、Wit.aiとnode.jsを使用してフローベースチャットボットを構築しました。うまくいきますが、インタラクションをより自然に見せるために、私のボットはしばらくポーズして、それぞれの回答を入力しているようです。Wit.aiからの各応答の前に 'typing_on'送信者アクションバブルを追加する
ボットが送信する各応答の前に「入力」バブルを短時間表示して、応答が送信される前にバブルが表示される時間を定義するのが理想的です。現時点では、ボットが連続したメッセージを送信し、すべてが一瞬ですばやく送信される、私の会話のセクションがあります。
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」ボットレスポンスを設定する必要がありますが、私はこれをどうやってやるのか分かりません。