c# - 使用图形 API 添加 MS Teams 网站选项卡错误

标签 c# tabs microsoft-graph-api microsoft-teams

上下文:

我正在尝试向 MS Teams 中的现有 channel 添加新的网站选项卡,然后获取新创建的选项卡的 ID。

问题:

我可以创建新选项卡,但我从图表中收到“BadRequest”异常:

消息:值不能为空。参数名称:实体

有趣的是,该选项卡已在正确的团队和 channel 中的 MS Teams 中创建并可见,但我无法以任何方式获取它的 ID。

我的代码:

var tab = await _graphClient.Teams[teamId].Channels[channelId].Tabs.Request().WithMaxRetry(3).AddAsync(
    new TeamsTab
    {
        DisplayName = "New Tab",
        AdditionalData = new Dictionary<string, object>
        {
            ["teamsApp@odata.bind"] =
                $"{_teamsFactory.GraphV1Endpoint}/appCatalogs/teamsApps/com.microsoft.teamspace.tab.web"
        },
        Configuration = new TeamsTabConfiguration
        {
            EntityId = null,
            WebsiteUrl = $"{_appUrl}/1",
            ContentUrl = $"{_appUrl}/1",
            RemoveUrl = null,

        }
    }
);

就像我上面写的那样,此代码可以运行并创建选项卡,但 GraphServiceClient 在分配 tab 变量之前抛出异常。

当我尝试在 Graph Explorer 中获取选项卡列表时

https://graph.microsoft.com/v1.0/teams/{teamid}/channels/{channelid}/tabs

我收到错误响应:

{
    "error": {
        "code": "InternalServerError",
        "message": "Failed to execute request.",
        "innerError": {
            "request-id": "a03654e8-37a7-4fbb-8052-6a1b11721234",
            "date": "2020-02-24T15:11:54"
        }
    }
}

最佳答案

我认为您可能需要为“EntityId”设置一个值 - 基本上只是一个字符串值来唯一地“命名”您的选项卡。它不是“DisplayName”,而是选项卡的字符串“id”。

关于c# - 使用图形 API 添加 MS Teams 网站选项卡错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60379040/

相关文章:

c# - 连续查询通知自动注销

c# - 如何在 C# 中禁用 DataGridView 的每个单元格制表位?

java - TabMain 不是抽象的,不会覆盖 TabListener 中的抽象方法 onTabReselected(Tab,FragmentTransaction)

c# - 使用 AAD 帐户以外的 ms live 帐户时,Azure AD 身份验证失败

c# - WPF绑定(bind)(使用触发器)不能从文本框工作到标签

c# - 使用没有 InvokePattern 或 clickablePoint 的 UI Automation 在单击按钮时调用

c# - 读入 HTML 文件并替换为变量

java - 如何使用 FXML 在 JavaFX 中动态创建选项卡?

oauth-2.0 - 如何使用 MailKit 中的 OAuth 2.0 连接到 Exchange Online?

microsoft-graph-api - 手动编辑 Excel 365 并使用图形 API 延迟读取