Невозможно передать параметр боту из веб-чата в IE 11 - PullRequest
0 голосов
/ 17 мая 2019

У меня есть код чата, чтобы начать разговор.Он отлично работает в Chrome, но не работает в IE 11. Со стороны бота я хочу прочитать некоторые исходные данные с клиента в bot.on ('разговорная перемена').Где и как мне указать свой идентификатор пользователя, который будет передан боту?

Код текущего клиента:

<script>
        window.fetch("https://xxxurladdress", { method: "POST" }) 
            .then(function (res) { return res.json(); }) 
            .then(function (json) { 
                const secret = json.secret;
                window.WebChat.renderWebChat({ 
                    directLine: window.WebChat.createDirectLine(
{secret:secret }),
                    userID: "1588b0f6-50c3-416e-8970-1d86bad6c68b
                }, document.getElementById("webchat"));   
            document.querySelector("#webchat > *").focus(); 
         }); 

 </script>

код бота в bot.on ('messagesUpdate'):

bot.on('conversationUpdate', async function (message) {


        if ((message.membersAdded && message.membersAdded.length > 0
        && message.address.user.role !== undefined)) {

            let conversationId = message.address.conversation.id; 
            let userId = message.address.user.id;

бот не может прочитать user.id в случае IE 11, хотя код выше работает в Chrome.

1 Ответ

0 голосов
/ 17 мая 2019

Лучший способ передачи значений в бэкэнд в чате - использовать функцию backchannel.

На странице GitHub в чате можно найти отличные демонстрационные версии: https://github.com/Microsoft/BotFramework-WebChat/tree/master/samples/15.d.backchannel-send-welcome-event

В двух словах вы должны создать пользовательское событие со всеми необходимыми данными и не использовать событие conversationUpdate.

Тогда поймайте это событие на стороне своего бота, и вот вы здесь!

...