botConnection.activity $ node.js BOT - PullRequest
0 голосов
/ 07 июня 2018

Я развернул бота, написанного на nodejs, используя обратный канал.В моем BOT я создаю событие следующим образом

создание события в bot.dialog:

    var ev = createEvent('sendUserInfo', "test", session.message.address);
   session.endDialog(ev)

функция события

const createEvent = (eventName, value, address) => {
var msg = new builder.Message().address(address);
msg.data.type = 'event';
msg.data.name = eventName;
msg.data.value = value;
return msg;}

В веб-чате JavaScript, яЯ пытаюсь подписаться на это событие, но НЕ получаю никакого ответа.

  botConnection.activity$
      .filter(activity => activity.type === "event")
      .subscribe(activity => console.log(activity));

Та же подписка работает правильно, если я создаю postActivity из веб-чата напрямую.

   botConnection
      .postActivity({ type: "event", name: "sendUserInfo", value: "test", from: user })
      .subscribe(id => console.log("success", id));

Любое предложение, почемуЯ не могу отловить события, созданные из BOT, в веб-чате?

Другой способ работает нормально, если я создаю событие из веб-чата и подписываюсь на событие в BOT, которое работает должным образом.

bot.on("event", function (event) {
    var msg = new builder.Message().address(event.address);
    msg.data.textLocale = "en-us";
    bot.send(msg);
})

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Я протестировал ваш код, но с BotConnection изменил то, что показано ниже, и он работал просто отлично.Внесите следующие изменения, и вы должны быть готовы.

Стив.

botConnection.activity$
    .filter(function (activity) {
        return activity.type === 'event' && activity.name === 'sendUserInfo';
    })
    .subscribe(function (activity) {
        console.log(activity.name + ' received with value: ' + activity.value);
    });
0 голосов
/ 08 июня 2018

Мне не очень понятен ваш код и сценарий.Но я отправляю событие в диалоге в веб-чат, и оно успешно записывается в activity$.filer....

В боте:

bot.dialog('/', function (session) {
    session.send('You said ' + session.message.text);
    var msg = new builder.Message(session);
    msg.data.type = 'event';
    msg.data.name = 'updateUrl';
    msg.data.value = 'hello world';
    session.send(msg);
});

в веб-чате:

botConnection.activity$
      .filter(activity => {console.log('filter');console.log(activity);return activity.type === "event"})
      .subscribe((activity) => {console.log(activity)});

enter image description here

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