情况:当用户注册机器人时(通过向机器人输入消息,我将该用户的信息存储在数据库中: - 用户身份 - 用户名, - ServiceURL
在某些时候,我想让我的机器人向该表中的所有用户广播一条消息。
foreach (var bUsers in users)
{
MicrosoftAppCredentials.TrustServiceUrl(bUsers.ServiceUrl);
MicrosoftAppCredentials creds = new MicrosoftAppCredentials("<<appid>>", "<<secret>>");
var connector = new ConnectorClient(new Uri(bUsers.ServiceUrl), creds);
var conversationId = await connector.Conversations.CreateDirectConversationAsync(new ChannelAccount(), new ChannelAccount(bUsers.UserId, bUsers.UserName));
message = Activity.CreateMessageActivity();
message.From = botAccount;
message.Recipient = userAccount;
message.Conversation = new ConversationAccount(id: conversationId.Id);
message.Text = "Hello from " + context.Activity.From.Name;
message.Locale = "en-Us";
var reply = await connector.Conversations.SendToConversationAsync((Activity) message);
}
使用此代码,我收到一条消息:
teamsChannelId中的会话ID无效
我不理解这个信息,甚至可以做我想做的事情吗?
答案 0 :(得分:0)
我做的几乎和你做的一样,但它突然停止了工作。我可以看到相同的错误消息。
但在我的情况下,这是错误的,也许它首先起作用很奇怪。因为我使用了设置为client.UserId
的{{1}}。如果我将代码更改为activity.Conversation.Id
,则可以使用它。
这是我现在正在运行的代码,旧的部分被注释掉了:
conversationId