Я пытаюсь отправить проактивное сообщение 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);
У меня есть следующие проблемы с этим,
Бот не может отправить проактивное сообщение, если у пользователя нет предшествующего разговора после развертывания
Бот развернут
Bill to Bot - Работает
Bot to Bill - Работает
Бот переведен
Bot to Bill - Не работает потому что в беседе нет участников после повторного развертывания
Bill to Bot - Работает
Bot to Bill - Работает сейчас, поскольку Билл разговаривал после повторного развертывания
Бот отправляет одно и то же сообщение пользователям несколько раз
Bill to Bot - Работает
Bot to Bill - Работает с упреждением - Посылает 1 определенное сообщение, как должно
Sim to Bot - Работает
Bot to Sim - Отправляет 2 одинаковых сообщения, поскольку в разговоре есть два участника сейчас
Will to Bot - работает
Bot to Will - Посылает 3 одинаковых сообщения, поскольку в разговоре сейчас три участника
Примечание: я храню ИД пользователей Команд в БД и использую их для отправки прямых сообщений пользователям.
Буду признателен за любую помощь в том, как это исправить. Спасибо.