Как передать данные с веб-сайта чат-боту botframework?

Мы создаем бота MS botframework, который будет размещен на веб-сайте, который мы контролируем.

Есть ли способ передать идентификатор сеанса с хост-сайта в виджет веб-чата, чтобы он был доступен при обработке сообщений внутри бота?

Если нет, можно ли получить доступ к параметру токена 't', как описано здесь http://docs.botframework.com/connector/embed-chat-control/

Спасибо


person PompeyCoder    schedule 18.04.2016    source источник


Ответы (3)


В настоящее время нет возможности сделать это с помощью управления чатом.

Если вам нужна более тесная интеграция, вам следует рассмотреть возможность использования API DirectLIne и создать с его помощью собственный UX.

person T Laird-McConnell    schedule 21.04.2016

Можно получить идентификатор разговора, который доступен в сообщении вашего бота. Для этого необходимо сделать POST-запрос на https://webchat.botframework.com/api/conversations. с авторизацией заголовка со значением "BOTCONNECTOR {ваш код безопасности}"

Вы должны получить новый токен и разговорный идентификатор в результате или запросе. Токен используется при создании тега iframe, в качестве токена сеанса можно использовать идентификатор разговора.

person Andrey Malyukov    schedule 03.06.2016

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

<body onload="postLoadMessage()">
    <div id="BotChatGoesHere" class="wc-narrow"></div>
    <script src="botchat.js"></script>
    <script>
        var params = BotChat.queryParams(location.search);
        var user = { id: '***' };
        var bot = { id: '***' };
        window['botchatDebug'] = params['debug'] && params['debug'] === "true";
        var botConnection = new BotChat.DirectLine({
            secret: '****',
            token: params['t'],
            domain: params['domain'],
            webSocket: params['webSocket'] && params['webSocket'] === "true" // defaults to true
        });
        BotChat.App({
            botConnection: botConnection,
            user: user,
            bot: bot
        }, document.getElementById("BotChatGoesHere"));
       
        //var x= whatever value you want to send;
        const postLoadMessage = () => {
            botConnection
                .postActivity({type: "event", value: x , from: {id: "me" }, name: "PageLoaded"})
                .subscribe(id => console.log("success"));
        }
    </script>
</body>

Приведенный выше код — это то, как я использовал его для отправки значения x при загрузке страницы с ботом.

Надеюсь, это поможет :)

person nupur kamble    schedule 22.06.2017