【问题标题】:Microsoft teams bot - could not parse tenant idMicrosoft 团队机器人 - 无法解析租户 ID
【发布时间】:2018-01-04 20:17:49
【问题描述】:

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

Microsoft.Rest.HttpOperationException:无法解析租户 ID

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

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

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

        var userAccount = new ChannelAccount("user@domain.com");
        var botAccount = new ChannelAccount("@botHandle", "botName");

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

谢谢!

【问题讨论】:

    标签: c# .net botframework microsoft-teams


    【解决方案1】:

    当你想要创建对话时,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 in参数。

    NuGet 包名为 Microsoft.Bot.Connector.Teams,可通过 here 获得。

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

    【讨论】:

    • 非常感谢!我有 Microsoft.Bot.Connector 包,但不知道 Microsoft.Bot.Connector.Teams。解决了这个错误!
    • 请注意:提到的包现在已被弃用,您应该使用包 Microsoft.Bot.Builder 和方法 CreateConversationAsync
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多