私は新しいMicrosoftのBot FrameworkとNode.JSを使用してボットを作成しようとしています。Microsoft Bot FrameworkのverifyBotFramework()は常にForbiddenを返します
問題は、私がverifyBotFramework()メソッドに正しいAppIdとApp Secretを渡しても、私は禁止され続けることです。
ボットはエミュレータでうまく動作しますが、私がテレグラムを介して手を差し伸べようとすると、「禁止」と表示されます。
また、エラーメッセージを返さないため、「ボットへの接続をテストする」ことはできません。ここで
は私のコードを行く:
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:フレームワークコントロールパネルで生成されたApp Secretを使用しています。プライマリとセカンダリの両方のApp Secretsを試しました。
HTTPSを証明書と鍵を暗号化して設定することで問題が解決されました。 –
Bot Framework SDKバージョン3以降では、 'verifyBotFramework'を呼び出す必要がなくなりました。 –