【发布时间】:2021-08-05 17:03:09
【问题描述】:
我已将我的应用添加到 MS Teams 中的特定团队,并在那里添加了我的机器人。现在,我正在尝试使用机器人在添加到“常规”频道的特定人员之间创建聊天,以便仅与特定人员进行交流。现在,我正在通过向该通道输入命令并处理活动来测试它,例如:
public async Task Handle(CancellationToken cancellationToken)
{
// Get all members who were added to that channel
var members = new List<TeamsChannelAccount>();
string continuationToken = null;
do
{
var currentPage = await TeamsInfo.GetPagedMembersAsync(_turnContext, 100, continuationToken, cancellationToken);
continuationToken = currentPage.ContinuationToken;
members.AddRange(currentPage.Members);
}
while (continuationToken != null);
// Start a new conversation with all of them
var createdConversation = await _connectorClient.StartConversation(members,
_turnContext.Activity.ServiceUrl,
_turnContext.Activity.Conversation.TenantId,
MessageFactory.Text("test proactive mssages"),
_turnContext.Activity.Recipient);
}
StartConversation 在哪里:
public async Task<ConversationResourceResponse> StartConversation(List<TeamsChannelAccount> members,
string serviceUrl,
string tenantId,
Activity activity,
ChannelAccount botAccount,
CancellationToken cancellationToken = default)
{
AppCredentials.TrustServiceUrl(serviceUrl, DateTime.MaxValue);
var connectorClient = new ConnectorClient(new Uri(serviceUrl), new MicrosoftAppCredentials(_botId, _botPassword));
try
{
var conversationParams = new ConversationParameters(
true,
botAccount,
members.Select(x => new ChannelAccount(x.Id, x.Name)).ToList(),
"Test proactive group message",
activity,
new TeamsChannelData()
{
Tenant = new TenantInfo(tenantId)
}
, tenantId);
return await connectorClient.Conversations.CreateConversationAsync(conversationParams, cancellationToken);
}
catch (Exception ex)
{
throw;
}
}
当我测试此代码时,我收到带有以下消息的异常:操作返回了无效状态代码“BadRequest”,错误代码为“BadSyntax”和消息“对话创建参数不正确”。
我不确定是否可以在 MS Teams 中创建此类对话。对我来说最令人困惑的部分是ConversationParameters 中的isGroup 参数 - 这不是表明创建的对话应该是群聊吗?我试图通过将 isGroup 设置为 false 并在成员中只留下我的 TeamsChannelAccount 来创建与我的帐户的直接对话,这很有效
我正在使用 Microsoft.Bot.Builder.Integration.AspNet.Core 4.14.1
感谢阅读和帮助!
【问题讨论】:
标签: c# botframework chatbot microsoft-teams