1

我通过 C# graph-api sdk 在 Microsoft Teams 中创建了团队(来自此处记录的组),没有任何问题 - 一切正常。

但是突然之间,这不再起作用了。我总是会在该行收到以下异常return await graphServiceClient.Teams.Request().AddAsync(team);

消息:无法执行模板后端请求 CreateTeamFromGroupWithTemplateRequest。请求网址: https ://teams.microsoft.com/fabric/emea/templates/api/groups/theGroupId/team,请求方法:PUT,

并进一步:

无法指定团队可见性,因为它是从组继承的。

我知道,如果按照 Microsoft 文档中的说明从组创建团队,则不得设置可见性属性:

创建的团队将始终从组的显示名称、可见性、专业化和成员继承。因此,当使用 group@odata.bind 属性进行此调用时,包含团队 displayName、可见性、专业化或 members@odata.bind 属性将返回错误。

但是下面当前使用的代码表明我没有设置任何禁止的属性——而且这段代码在最近几天也有效:

    private async Task<Team> CreateTeamFromGroup(string groupId)
    {
        var graphServiceClient = [...]

        var groupResourceLink = $"https://graph.microsoft.com/v1.0/groups('{groupId}')";
        var team = new Team
        {
            AdditionalData = new Dictionary<string, object>()
            {
                { "template@odata.bind", "https://graph.microsoft.com/beta/teamsTemplates('standard')" },
                { "group@odata.bind", groupResourceLink }
            },
            Channels = new TeamChannelsCollectionPage
            {
                new Channel
                {
                    DisplayName = "WhatEver"
                }
            }
        };

        return await graphServiceClient.Teams.Request().AddAsync(team);
    }

还有其他人遇到这个问题吗?是否有 API 更改?团队后端是否发生了变化?有人有什么想法吗?

PS:我正在使用最新的 NuGet-Package for Microsoft Graph - 降级没有帮助。

更新(使用不太令人满意的解决方法)

  • 该错误也可以通过图形 api explorer 重现。
  • 上面的 POST 命令发出一个 PUT 命令,在此处进行了描述。通过此请求,可以创建团队。
    • 但是,C# 的文档和图形 API 片段已经过时了。使用 sdk 时必须将 odatatype = null 添加到属性中
    • 不幸的是,不可能在同一步骤中添加频道。如果您指定属性“通道”,它将被忽略。

更新(详细的错误信息)

System.AggregateException: '发生一个或多个错误。(代码:BadRequest 消息:无法执行模板后端请求 CreateTeamFromGroupWithTemplateRequest。请求网址: https ://teams.microsoft.com/fabric/emea/templates/api/groups/theGroupId/team,请求方法:PUT,响应状态代码: BadRequest, ErrorMessage : {"errors":[{"message":"无法指定团队可见性,因为它是从组继承的。"}],"operationId":"639448e414ece64caee8f52839585bf7"} 内部错误:AdditionalData: 日期:2020 -11-24T10:21:22 请求 ID: 37a28cac-3ac5-4bd2-a061-daf44c442fac 客户端请求 ID:37a28cac-3ac5-4bd2-a061-daf44c442fac ClientRequestId:37a28cac-3ac5-4bd2-a061-daf44c442fac)

4

2 回答 2

0

这是 Microsoft 问题/错误,目前正在按照此处所述进行修复。

于 2020-11-24T17:11:25.160 回答
0

今天早上刚刚进行了测试,我可以说,使用 beta API 创建带有模板的团队的“旧方式”再次有效。不知道,还有多少其他方法可以做这些事情,但这是我们当前的请求,现在(再次)有效。

POST https://graph.microsoft.com/beta/teams
{
    "displayName": "My Group Name",
    "description": "Some description",
    "template@odata.bind": "https://graph.microsoft.com/beta/teamsTemplates('educationClass')",
    "owners@odata.bind": [
        "https://graph.microsoft.com/beta/users('<someValidUserId>')"
    ]
}

我认为这只是一个中间状态,当错误被修复时,他们将再次发布新版本,这种创建将再次失败,但如果在这种情况下,v1.0 记录的方式将起作用,这将不会是一个大问题。但是在推出开始之前得到通知会很棒。

于 2020-11-25T08:47:21.707 回答