Что касается вашего вопроса «Как я могу отправить (не отвечая) сообщение?»:
Он указан в указанной вами ссылке (раздел Начать разговор ).
Вы можете создать один вручную, используя Activity.CreateMessageActivity (), например. Вам нужно будет установить все значения вручную и создать экземплярный коннектор, чтобы он работал.
Если вы хотите отправить действие во время хода бота, где у вас есть активность пользователя, вы можете использовать этот объект активности дляЗаполните множество полей.
С другой стороны, если вы хотите отправлять действия пользователям из внешнего триггера, у вас будет немного больше работы.
Вы можете проверить этопример проактивных сообщений в BotBuilder-Samples: https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/16.proactive-messages
Здесь они вводят ConcurrentDictionary как синглтон для совместного использования контроллером и ботом.
Бот добавляет записи в этот словарь, когда пользователи взаимодействуют с ним(см. AddConversationReference ).
Контроллер выполняет итерации записей и отправляет те же действия всем пользователям, которые ранее общались с ботом в методе BotCallback .
Это не готовая к реализации реализация, так как простой перезапуск заставляет приложение забыть всех пользователей, но дает представление о том, что нужноподдерживается для отправки проактивных сообщений пользователям.
Вы можете прочитать статью Microsoft об этом