c# - Microsoft 团队机器人 - 无法解析租户 ID

标签 c# .net botframework microsoft-teams

我正在为 MS Teams 开发一个机器人,但遇到了问题。当尝试从机器人发起对话时,我收到此错误:

Microsoft.Rest.HttpOperationException: Could not parse tenant id

我在文档中找不到任何提及所需租户 ID 的地方,而且我从未在应用程序中设置过该 ID。我该如何指定这一点,或者根本原因是其他原因?

下面是我正在使用的返回错误的代码(字符串被混淆)。

private ConversationResourceResponse GetConversation(IActivity activity)
    {
        var connector = new ConnectorClient(new Uri(activity.ServiceUrl));

        var userAccount = new ChannelAccount("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="552026302715313a38343c3b7b363a38" rel="noreferrer noopener nofollow">[email protected]</a>");
        var botAccount = new ChannelAccount("@botHandle", "botName");

        var conversationId = connector.Conversations.CreateDirectConversation(botAccount, userAccount);
        return conversationId;
    }

谢谢!

最佳答案

当您想要创建对话时,MS Teams 中有一种特殊行为,因此您必须使用 MS Teams NuGet 包提供的特定方法:

// Create or get existing chat conversation with user
var response = client.Conversations.CreateOrGetDirectConversation(activity.Recipient, activity.From, activity.GetTenantId());

您可以看到该方法的参数中有tenantId

NuGet 包名为 Microsoft.Bot.Connector.Teams,可用 here .

有关 MS Teams 文档的更多详细信息(Bot 框架方面未详细说明): https://learn.microsoft.com/en-us/microsoftteams/platform/scenarios/bots-personal-conversations#starting-a-11-conversation

关于c# - Microsoft 团队机器人 - 无法解析租户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48102932/

相关文章:

c# - 在网站中发送/接收/响应 IM 的最简单方法

c# - 不同的 .NET 程序集引用取决于 32-64 位

c# - 查看字符串中的每个字符

c# - 在 Windows 上编译 C# .net 3.5 控制台应用程序是否有任何免费、小型、快速的东西?

c# - T4 文本生成部分类

azure - 适用于 Microsoft Teams 的 Azure Bot App Reg 可以使用单租户吗?

c# - 如何为需要用户进行身份验证的 Bot Framework v4 对话框编写单元测试?

c# - 可以使用数组访问 C# 多维数组索引器吗?

.net - .NET 信号量可以在同一台计算机上的用户之间共享吗?

visual-studio - 无法将调试器附加到 Azure Web 服务聊天机器人应用程序