【问题标题】:MS Teams Bot Create Group ConversationMS Teams 机器人创建群组对话
【发布时间】: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


    【解决方案1】:

    我们最终尝试了它并遇到了同样的问题。也许您可以尝试使用深度链接创建群组https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/deep-links#deep-linking-to-a-chat

    谢谢

    【讨论】:

      猜你喜欢
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      相关资源
      最近更新 更多