環境 -
BI アプリケーションの 1 つに Javascript ベースのカスタム コンポーネントを作成しています。これは、ユーザーが DirectLine チャネルを使用して Microsoft ボットとチャットできるようにする単純な Web ベースのコンポーネントです。
少し苦労して、私が構築しているカスタム コンポーネントにボットチャット ライブラリ (Javascript ファイル) をロードすることができましたが、ライブラリへの呼び出しは常にエラー「Uncaught ReferenceError: BotChat が定義されていません」をスローします。
DirectLineチャネルでbotchatライブラリを呼び出すために使用しているコードは次のとおりです-
BotChat.App({
directLine: { secret: 'wtt1zOP02nU.cwA.1ww-DUMMY-SECRET' },
user: { id: 'TestBot' },
bot: { id: 'TestBot' }
}, document.getElementById("BotChatGoesHere"));
HTML Web ページでコードを実行しても問題はありません。完全に機能します。JavaScript コンポーネントの呼び出し中に、「Uncaught ReferenceError: BotChat is not defined」がスローされます。
ライブラリが適切にロードされていることがわかります - Chrome からのネットワーク リソースのスクリーンショットを参照してください -
これが CDN です - https://cdn.botframework.com/botframework-webchat/latest/botchat.js
botchat.js のコードは次のように定義されています -
! function(t, e)
{
"object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.BotChat = e() : t.BotChat = e()
}(this, function() {
return function(t) {
function e(r) {
if (n[r]) return n[r].exports;
var o = n[r] = {
i: r,
l: !1,
exports: {}
};
return t[r].call(o.exports, o, o.exports, e), o.l = !0, o.exports
}
...........
...........
});
すでに複数のことを試しました-外部ライブラリを参照する代わりに、botchat.jsコード全体をコピーして、BotChat.Appを呼び出す同じコンポーネント関数に貼り付けました
「this.BotChat.App({..});」も使ってみた それでも失敗します。
ただし、サンプルのテスト関数呼び出しは、同じコンポーネント js ファイル内の外部 javascript ファイル/関数に対して同じアプローチですべて問題ありません。
BotChat のインスタンス化を試みましたが、エラーで失敗しました - BotChat はコンストラクターではありません。基本的にオブジェクト型です。
BotChat を呼び出す他の方法を教えてください。Jqueryにあるかもしれませんか?または、私は何を間違っていますか?