所以我在Facebook Messenger机器人的messenges上获得[400] Bad Request
。
我之前没有得过这个。错误:
Error: Request to 'https://facebook.botframework.com/v3/conversations/some-randomID/activities/anotherID' failed: [400] Bad Request
我已经进行了搜索并从Github问题开始,我认为这是与状态存储有关的东西。从这个帖子:https://github.com/Microsoft/BotBuilder/issues/2272
我已经阅读了nodejs sdk文档并添加了:
bot.set('persistConversationData', false);
bot.set('persistUserData', false);
我甚至控制台在我的一个意图中注销了以下内容
console.log(session.conversationData, '<<');
console.log(session.privateConversationData, '<<');
console.log(session.dialogData, '<<');
console.log(session.userData, '<<');
我回来了
[0] {} '<<'
[0] {} '<<'
[0] { 'BotBuilder.Data.WaterfallStep': 0 } '<<'
[0] {} '<<'
有没有人遇到过这个问题。知道发生了什么事吗?
我一直在通过模拟器测试它,所有这些似乎都在那里正常工作。我没有收到错误。
我知道,关闭模拟器可以杀死所有持久存储,所以我觉得它与该问题有关,但不确定为什么我当前的bot.set
方法无效。
server.js
配置import request from 'request';
import botDefault from './bot';
const restify = require('restify');
const builder = require('botbuilder');
const server = restify.createServer();
server.listen(process.env.PORT || 5000, () => {
console.log('%s listening to %s', server.name, server.url);
});
const connector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD,
});
const bot = new builder.UniversalBot(connector);
bot.set('persistConversationData', false);
bot.set('persistUserData', false);
server.post('/api/messages', connector.listen());
bot.beginDialogAction('Help', 'Help', { matches: /^help/i });
bot.beginDialogAction('/', '/', { matches: /^get started|Get Started/i });
botDefault(bot, builder);