Отличается ли эмулятор Bot Framework от новых участников от Bot Framework Webchat? - PullRequest
1 голос
/ 09 мая 2019

В соответствии с этим официальным примером проекта (https://github.com/microsoft/BotBuilder-Samples/blob/master/samples/typescript_nodejs/13.core-bot/src/bots/dialogAndWelcomeBot.ts) я могу идентифицировать новых участников и отправить им приветственное сообщение, используя этот (мой код):

this.onMembersAdded(async (context) => {
   const welcomeCardTemplate = require("../lib/data/resources/cards/welcomeCard.json");
      const membersAdded = context.activity.membersAdded;
      for (const member of membersAdded) {
         if (member.id !== context.activity.recipient.id) {
            const welcomeCard = CardFactory.adaptiveCard(welcomeCardTemplate );
            await context.sendActivity({ attachments: [welcomeCard] });
         }
      }
   });

Отлично работает при использовании эмулятора. Как только я подключаюсь к чату, я получаю приветственное сообщение, но при использовании чата в Azure или веб-чата оно не запускается, пока я сначала не введу какой-либо текстовый ввод в чат.

Одна вещь, которую я заметил, заключается в том, что когда я использую эмулятор, сразу после подключения к чату на бот отправляются две активности, одна из которых содержит Id бота, а другая - Id пользователя, но при использовании других параметров чата (Azure Chat и WebChat) отправляется только одно действие (где memberId совпадает с идентификатором receientId), поэтому оно никогда не проходит мимо оператора if.

Чего мне здесь не хватает, почему из чата Azure и веб-чата отправляется только одно действие?

1 Ответ

2 голосов
/ 09 мая 2019

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

Как указано в проблеме, существует обходной путь для принудительного вызова события ConversationUpdate, которое вы можете попробовать и протестировать, если оно соответствует вашим потребностям (я сам не пробовал).

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