Отправлять проактивные сообщения 1: 1 в Команды, используя Bot Framework V4 - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь отправить проактивное сообщение 1: 1 от бота командам, использующим Teams SDK с кодом ниже

MicrosoftAppCredentials.TrustServiceUrl(turnContext.Activity.ServiceUrl);
            var connectorClient = new ConnectorClient(new Uri(turnContext.Activity.ServiceUrl), Configuration["MicrosoftAppId"], Configuration["MicrosoftAppPassword"]);

            var userId = _operation.MemberTeamsId;
            var tenantId = Configuration["TenantId"];
            var parameters = new ConversationParameters
            {
                Members = new[] { new ChannelAccount(userId) },
                ChannelData = new TeamsChannelData
                {
                    Tenant = new TenantInfo(tenantId),
                },
            };

            var conversationResource = await connectorClient.Conversations.CreateConversationAsync(parameters);
            var message = Microsoft.Bot.Schema.Activity.CreateMessageActivity();
            message.Text = _operation.Message;
            await connectorClient.Conversations.SendToConversationAsync(conversationResource.Id, (Microsoft.Bot.Schema.Activity)message);

У меня есть следующие проблемы с этим,

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

    Бот развернут

    Bill to Bot - Работает

    Bot to Bill - Работает

    Бот переведен

    Bot to Bill - Не работает потому что в беседе нет участников после повторного развертывания

    Bill to Bot - Работает

    Bot to Bill - Работает сейчас, поскольку Билл разговаривал после повторного развертывания

  2. Бот отправляет одно и то же сообщение пользователям несколько раз

    Bill to Bot - Работает

    Bot to Bill - Работает с упреждением - Посылает 1 определенное сообщение, как должно

    Sim to Bot - Работает

    Bot to Sim - Отправляет 2 одинаковых сообщения, поскольку в разговоре есть два участника сейчас

    Will to Bot - работает

    Bot to Will - Посылает 3 одинаковых сообщения, поскольку в разговоре сейчас три участника

Примечание: я храню ИД пользователей Команд в БД и использую их для отправки прямых сообщений пользователям.

Буду признателен за любую помощь в том, как это исправить. Спасибо.

1 Ответ

1 голос
/ 21 января 2020

Основываясь на ответах в комментариях, я думаю, что понимаю сценарий лучше, и мне кажется, что проблема в том, что вы все равно не устанавливаете Id Conversation Id - хотя вы говорите Боту, какой пользователь с которым вы хотите взаимодействовать, он должен знать, хотите ли вы взаимодействовать с ними напрямую (т.е. 1-1), или как часть группового чата где-нибудь, или канала Команд.

Вам необходимо установить это, настроив свойство Conversation в экземпляре Activity (в вашем случае это переменная message). См. Мой пост здесь для получения более подробной информации: Программная отправка сообщения боту в Microsoft Teams

Надеюсь, что это поможет - если нет, дайте мне знать

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