我正在嘗試使用新的Microsoft Bot框架和Node.JS創建一個bot。Microsoft Bot Framework的verifyBotFramework()總是返回Forbidden
問題是,即使我認爲我給verifyBotFramework()方法正確的AppId和應用程序的祕密,我總是被禁止。
機器人在模擬器中工作得很好,但是當我試圖通過電報達到它時,它說「禁止」。
此外,我不能使用「測試連接到你的機器人」,因爲它甚至不會返回錯誤消息。
這裏去我的代碼:
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」 和 「myappid」,我剛剛更換他們在這裏。 PS:我正在使用由框架控制面板生成的應用程序密鑰。我嘗試了主要和次要應用程序的祕密。
使用Let's Encrypt證書和Key設置HTTPS解決了問題。 –
請注意,自Bot Framework SDK版本3+以後,您不再需要調用'verifyBotFramework'。 –