Как изменить контейнер веб-чата Microsoft Chatbot при использовании DirectLine - PullRequest
1 голос
/ 19 октября 2019

У меня есть чат-бот, где я использую DirectLine для встраивания бота в мой сайт. Пользовательский интерфейс DirectLine выглядит как страница с белым фоном, и я хочу изменить его так, чтобы он выглядел как изображение ниже или рядом с ним:

enter image description here

Яследуя примерам здесь .

Я смог изменить размер контейнера, но не смог изменить шрифт или цвет фона пузырьков чата, используя предоставленный код. Это мой код:

<body>
<div id="webchat" role="main">

</div>
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
<!--<script src="webchat.js"></script>-->
<script>
    const styleSetOptions= window.WebChat.createStyleSet({
        bubbleBackground: 'rgba(0, 0, 255, .1)',
        bubbleFromUserBackground: 'rgba(0, 255, 0, .1)'
    });

    var d1 = window.WebChat.createDirectLine({ token: '<secret token>' })
    var siteDomain = document.URL
    window.WebChat.renderWebChat(
        {
            directLine: Object.assign(
                {},
                d1,
                {
                    postActivity: activity => {
                        var newActivity = Object.assign({}, activity, { channelData: { "siteDomain": siteDomain } });
                        return d1.postActivity(newActivity);
                    }
                }),
        styleSetOptions 
        },
        document.getElementById('webchat')
    );
</script>

Это не работает. Я скачал CDN webchat.js. Я также интегрировал его локально, создав собственный файл JS и связав его на своей странице HTML, это не сработало. Я что-то пропустил?

Ответы [ 2 ]

3 голосов
/ 20 октября 2019

Вы должны передать styleSet , который вы создали, в renderWebChat . Ваш styleSet создан, но нигде не используется.

проверьте приведенный ниже пример:

 const styleOptions = {
        bubbleBackground: 'rgba(0, 0, 255, .1)',
        bubbleFromUserBackground: 'rgba(0, 255, 0, .1)'
     };

     window.WebChat.renderWebChat(
        {
           directLine: window.WebChat.createDirectLine({
              secret: 'YOUR_BOT_SECRET'
           }),

           // Passing 'styleOptions' when rendering Web Chat
           styleOptions
        },
        document.getElementById('webchat')
     );
0 голосов
/ 22 октября 2019

Вам необходимо присвоить styleSetOptions объект styleOptions свойству rederWebchat метода, т.е.

const styleSetOptions= window.WebChat.createStyleSet({
    bubbleBackground: 'rgba(0, 0, 255, .1)',
    bubbleFromUserBackground: 'rgba(0, 255, 0, .1)'
});

 window.WebChat.renderWebChat(
        {
            directLine: Object.assign(
                {},
                d1,
                {
                    postActivity: activity => {
                        var newActivity = Object.assign({}, activity, { channelData: { 
                      "siteDomain": siteDomain } });
                        return d1.postActivity(newActivity);
                    }
                }),
           styleOptions: styleSetOptions
        },
        document.getElementById('webchat')
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...