2

環境 -

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にあるかもしれませんか?または、私は何を間違っていますか?

4

0 に答える 0