Microsoft Teams 中的模拟

Impersonation in Microsoft Teams

我正在尝试使用 Teams 中的 Microsoft Bot Framework 将消息转发给选定的用户。 该功能在 Bot Emulator 中按预期工作,但在我的组织中使用 Teams(具有有效用户 ID)对其进行测试时

消息作为机器人直接发送给用户。

IMessageActivity newMessage = Activity.CreateMessageActivity();

newMessage.Type = ActivityTypes.Message;
newMessage.From = new ChannelAccount("Impersonated User ID", "Impersonated User Name");
newMessage.Conversation = context.Activity.Conversation;
newMessage.Recipient = new ChannelAccount("Recipient ID");
//newMessage.From.Name = "Stephane Fornaroli";
newMessage.ReplyToId = context.Activity.From.Id;
newMessage.Text = text;

await context.PostAsync(newMessage);

这也适用于频道对话,用于将消息转发到指定频道:

var messagee = JsonConvert.DeserializeObject<ConversationReference>(conversationReference).GetPostToBotMessage();
var channelData = context.Activity.ChannelData;

var message = Activity.CreateMessageActivity();

message.Text = text;
message.From = new ChannelAccount("Impersonated User ID", "Impersonated User Name");

var conversationParameters = new ConversationParameters
{
    IsGroup = true,
    ChannelData = channelData,
    Activity = (Activity)message
};
var connectorClient = new ConnectorClient(new Uri(messagee.ServiceUrl));

await connectorClient.Conversations.CreateConversationAsync(conversationParameters);

一种选择是使用 Graph API to send message 使用用户的委托权限。请注意,目前此 API 处于测试阶段,仅支持发送纯文本消息。