私は、ユーザープロンプトに基づいてニュース記事を取り出す単純なボットを持っています。全体の流れはエミュレータを使用してローカルで正常に動作しますが、サーバーにデプロイされた後、builder.Prompts.textブロックにヒットしたときにボットが失敗します。以下は私のコードです。「物品の数を問い合わせる」プロンプトが表示され、そこではフローが停止します。builder.Prompts.textはリモートでホストされた後に動作しません
var bot = new builder.UniversalBot(connector);
var intents = new builder.IntentDialog();
bot.dialog('/', intents);
var HHCC = require('./hhcc.js');
intents.matches(/^news/i, [
function(session) {
console.log("Intent Given!");
session.beginDialog('/news');
},
function(session, results) {
session.send('Enjoy reading!');
}
]);
bot.dialog('/news', [
function(session) {
console.log("Asking article count");
builder.Prompts.text(session, 'How many articles would you like to see?');
},
function(session, results) {
session.sendTyping();
session.conversationData.count = results.response;
HHCC.getNews(session.conversationData.count, session, function(newsArticles) {
newsArticles.forEach(function(newsCard) {
session.send(newsCard);
});
session.conversationData.news = newsArticles;
console.log(newsArticles);
session.endDialog();
});
}
]);
server.post('/api/messages', connector.listen());
相互作用した後
ボットはまた、各チャンネルの0の問題を示すスラックれるBOTフレームワークページでテストする際
- ボットショーは受け付け
Iveはすべてのログをチェックしてしまい、かなり静かに失敗したという手がかりは見つけられないようです。
回答ありがとう!今のところ私はどんなプラットフォームにも戻ってくるようなプロンプトを出すことさえしていないし、Botframeworkのログにアクセスできないので、どこにドロップオフが発生しているのか分からない。だから私が "ニュース"と入力すると、それは意図を引き起こし、サーバーのログに 'console.logs'が両方見えるが、私が使っているクライアントには何の応答も返らない。 – mcclaskiem
'console.logs'はテスト目的ですか?彼らがおそらく干渉しているのではないかと思っています。ボットはエミュレータを使用してローカルで動作しますが、WebChatとSlackを通じてデプロイされアクセスされるとは限りません。開発者の利益のために 'console.logs'を使用しているのであれば、' session.send'のようなものを後に追加して変更を探します。 'session.sends'で同じイベントが発生した場合、それらのログを' session.send'に変更することで変更を探します。 –
これを試してみましたが、session.sendはクライアントに何も返さず、console.logsもsession.sendsに置き換えました。 :(どういうことが起こっているのかわからない – mcclaskiem