Microsoft Bot Framework:从数据库

时间:2017-02-15 11:16:59

标签: c# frameworks bots

情况:当用户注册机器人时(通过向机器人输入消息,我将该用户的信息存储在数据库中: - 用户身份 - 用户名, - 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无效

我不理解这个信息,甚至可以做我想做的事情吗?

1 个答案:

答案 0 :(得分:0)

我做的几乎和你做的一样,但它突然停止了工作。我可以看到相同的错误消息。

但在我的情况下,这是错误的,也许它首先起作用很奇怪。因为我使用了设置为client.UserId的{​​{1}}。如果我将代码更改为activity.Conversation.Id,则可以使用它。

这是我现在正在运行的代码,旧的部分被注释掉了:

conversationId