2016-03-31 10 views
1

私は新しい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を試しました。

+0

HTTPSを証明書と鍵を暗号化して設定することで問題が解決されました。 –

+1

Bot Framework SDKバージョン3以降では、 'verifyBotFramework'を呼び出す必要がなくなりました。 –

答えて

0

HTTPSを使用していることを確認してください。 HTTPを使用している場合、BotFrameworkはあなたのappSecretをクリアに送信しないため、基本認証を無効にする必要があります。

+0

ありがとう!証明書は自己署名されたものにすることはできますか? –

+0

いいえ、あなたのホスト名に有効な適切に連鎖した証明書でなければなりません。 –

+0

問題はありません、証明書を暗号化しようとしました。それは完璧に動作しました=) –

関連する問題