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 处于测试阶段,仅支持发送纯文本消息。
我正在尝试使用 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 处于测试阶段,仅支持发送纯文本消息。