Можно ли открыть widgets.getsitecontrol.com/ javascript от лазурного бота v4? - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу открыть страницу widgets.getsitecontrol.com/ javascript, которую я внедрил на своем веб-сайте.Всякий раз, когда я набираю «Помощь» внутри своего бота, виджет должен открываться.Можно ли его открыть?Благодарю.Я использую версию узла JS.Если это возможно, пожалуйста, дайте мне подход для решения этой проблемы.

1 Ответ

0 голосов
/ 17 апреля 2019

Я не уверен точно, как функционирует ваш виджет, но когда пользователь отправляет боту сообщение «помощь», вы можете отправить событие обратного канала в WebChat, чтобы инициировать открытие виджета.Посмотрите на фрагменты кода ниже.

Код бота - NodeJs

Когда бот получает сообщение «Помощь» от пользователя, бот может отправить событиеотправив действие с типом, установленным в «событие».Мы также можем присвоить исходящей активности имя атрибута, чтобы мы могли отправлять несколько типов событий в WebChat.В этом случае мы назовем исходящее действие helpEvent.

async onTurn(turnContext) {
    if(turnContext.activity.type === ActivityTypes.Message) {
        if (turnContext.activity.text.toLowerCase() === 'help') {
            // Send Back Channel Help Event
            await turnContext.sendActivity({ type: 'event', name: 'helpEvent'});
        }
    ...
    }
}

WebChat Custom Middleware

В WebChat мы собираемся создатьпользовательское промежуточное ПО для проверки входящих действий.Когда мы сталкиваемся с действием, которое имеет имя и тип, который мы узнаем, запустите ваше событие на веб-странице.В приведенном ниже примере я только что предупредил об использовании, которое они попросили о помощи, но здесь вы запускаете свой виджет.

const store = window.WebChat.createStore(
    {},
    ({ dispatch }) => next => action => {
        if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
          const { name, type } = action.payload.activity;

          if (type === 'event' && name === 'helpEvent') {
            // Activate Widget 
            alert("You asked for help.");
          }
        }
        return next(action);
    }
);

window.WebChat.renderWebChat({
    directLine: window.WebChat.createDirectLine({ token }),
    store,
}, document.getElementById('webchat'));

Для получения дополнительной информации о событиях в обратном канале и создания пользовательского промежуточного программного обеспечения в WebChat, проверьте этот пример в репо WebChat.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...