Microsoft Bot Framework的verifyBotFramework()始终返回Forbidden

时间:2016-03-31 16:33:48

标签: node.js frameworks bots botframework

我正在尝试使用新的Microsoft Bot Framework和Node.JS创建机器人。

问题是,即使我认为我给了verifyBotFramework()方法正确的AppId和App Secret,我仍然被禁止。

机器人在模拟器中运行得很好,但当我尝试通过Telegram达到它时,它会说" Forbidden"。

此外,我无法使用"测试连接到您的机器人",因为它甚至不会返回错误消息。

这是我的代码:

var restify = require('restify');
var builder = require('botbuilder');

var server = restify.createServer();

//Criando bot e adicionando diálogos
var bot = new builder.BotConnectorBot();
bot.add('/', new builder.CommandDialog()
    .matches('^set name', builder.DialogAction.beginDialog('/profile'))
    .matches('^quit', builder.DialogAction.endDialog())
    .onDefault(function(session) {
        if (!session.userData.name) {
            session.beginDialog('/profile');
        } else {
            session.send('Hello, %s!', session.userData.name);
        }
    })
);


bot.add('/profile', [
    function(session) {
        if (session.userData.name) {
            builder.Prompts.text(session, 'What would you like me to call you instead?');
        } else {
            builder.Prompts.text(session, 'Hey there =). What\'s your name?');
        }
    },
    function(session, results) {
        session.userData.name = results.response;
        session.endDialog();
    }
]);

//Configurando Restify
server.use(bot.verifyBotFramework({ appId: 'myappid', appSecret: 'myappsecret' }));
server.post('/v1/messages', bot.listen());
server.listen(process.env.port || 3978, function() {
    console.log('%s listening to %s', server.name, server.url);
});

不,我没有使用" myappsecret"和#34; myappid",我刚刚在这里更换了它们。

PS:我正在使用框架控制面板生成的App Secret。我尝试了主要和辅助App Secrets。

1 个答案:

答案 0 :(得分:0)

确保您使用的是HTTPS。如果您使用的是HTTP,则需要禁用基本身份验证,因为BotFramework无法以明文形式发送您的appSecret。