Как отправить приветственное сообщение и автоматически загрузить определенный диалог в Microsoft Bot Framework v.3 (Node.js)? - PullRequest
0 голосов
/ 21 ноября 2019

Я пытаюсь показать приветственное сообщение при запуске моего бота, а также загрузить определенный диалог. Мы используем версию 3 в компании, в которой я работаю (я знаю, она старая и не поддерживается).

Что касается приветственного сообщения, https://docs.microsoft.com/en-us/azure/bot-service/nodejs/bot-builder-nodejs-handle-conversation-events?view=azure-bot-service-3.0 говорит, что нужно использовать on conversationUpdate,который работает нормально, но это, кажется, противоречит https://blog.botframework.com/2018/07/12/how-to-properly-send-a-greeting-message-and-common-issues-from-customers/,, который предлагает не использовать conversationUpdate, за исключением случаев, когда используется DirectLine, но вместо этого отправьте событие. Это последнее слово по этому вопросу? Есть ли лучший способ?

Я также хотел бы автоматически загрузить диалог после приветственного сообщения. Как мне это сделать? Могу ли я получить доступ к сеансу во время события on onUpdate выше и загрузить диалог прямо там? Есть ли лучший способ?

Спасибо за любую помощь!

1 Ответ

1 голос
/ 22 ноября 2019

Это противоречиво, но conversationUpdate, вероятно, является лучшим выбором в большинстве ситуаций. Однако, поскольку каналы обрабатывают это по-разному, вы должны знать, что результат может отличаться. Для прямой линии лучше использовать отправляющие события.

Например, в случае необходимости:

bot.on('conversationUpdate', function(message) {
  if (message.membersAdded) {
    message.membersAdded.forEach(function(identity) {
      if (identity.id === message.address.bot.id) {
        var reply = new builder.Message()
          .address(message.address)
          .text("Welcome");
        bot.send(reply);
      }
    });
  }
});

Для немедленного вызова определенного диалога, сделайте следующее:

bot.on('conversationUpdate', function (message) {
  if (message.membersAdded) {
    message.membersAdded.forEach(function (identity) {
      if (identity.id === message.address.bot.id) {
        bot.beginDialog(message.address, '/main');
      }
    });
  }
});

bot.dialog('/main', [
  function (session, args, next) {
    session.send("Glad you could join.");
    session.beginDialog('/next');
  }
]);

Просто объедините их для отправки приветственного сообщения и запуска диалога.

Надежда на помощь!

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