Office365 如何使用Graph API在MS团队中添加团队成员?

Office365 如何使用Graph API在MS团队中添加团队成员?,office365,microsoft-graph-api,microsoft-teams,Office365,Microsoft Graph Api,Microsoft Teams,我正在使用Microsoft Graph API创建团队,并在MS团队中添加团队成员。出于同样的原因,我遵循这一点: 这就是我为实现整体行为所做的: 创建office 365组。这里没有问题。 在步骤1中创建的组下创建MS团队。这也很好。 将成员添加到在步骤1中创建的office 365组。效果很好。 在步骤2中创建的MS团队中添加与团队成员相同的成员。不起作用。 我正在使用以下代码添加团队成员: public static void AddMemberToTeam(string userId,

我正在使用Microsoft Graph API创建团队,并在MS团队中添加团队成员。出于同样的原因,我遵循这一点:

这就是我为实现整体行为所做的:

创建office 365组。这里没有问题。 在步骤1中创建的组下创建MS团队。这也很好。 将成员添加到在步骤1中创建的office 365组。效果很好。 在步骤2中创建的MS团队中添加与团队成员相同的成员。不起作用。 我正在使用以下代码添加团队成员:

public static void AddMemberToTeam(string userId, string groupId) 
{
            var endpoint = $"{GRAPH_ROOT_URI}groups/{groupId}/members/$ref";
        var content = new Member { ODataId = $"{GRAPH_ROOT_URI}directoryObjects/{userId}" };
            var request = new HttpRequestMessage(HttpMethod.Post, endpoint);
            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", TOKEN);
            request.Content = new StringContent(JsonConvert.SerializeObject(content), Encoding.UTF8, "application/json");
            var client = new HttpClient();
            var response = client.SendAsync(request).Result;
}
虽然上一条语句返回的响应与文档204一致,但没有任何内容,成员不会被添加到团队中。我在社区中找不到关于Ms Team graph API的太多帮助

要添加团队成员,请执行以下操作:

public static void AddMemberToTeam(string userId, string groupId) 
{
            var endpoint = $"{GRAPH_ROOT_URI}groups/{groupId}/members/$ref";
        var content = new Member { ODataId = $"{GRAPH_ROOT_URI}directoryObjects/{userId}" };
            var request = new HttpRequestMessage(HttpMethod.Post, endpoint);
            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", TOKEN);
            request.Content = new StringContent(JsonConvert.SerializeObject(content), Encoding.UTF8, "application/json");
            var client = new HttpClient();
            var response = client.SendAsync(request).Result;
}
PS:我正在使用office 365开发人员帐户,并且我已将所有需要的权限授予管理员用户。

您将遇到找不到错误,因为在Json负载中,您正在传递ODataId,而API调用期望它为@odata.id

以下是两种可能的解决方案:

将内容更新为以下内容:

var contentJSON = $"{{ \"@odata.id\": \"https://graph.microsoft.com/beta/directoryObjects/{userId}\" }}";
request.Content = new StringContent(contentJSON, Encoding.UTF8, "application/json");
您可以将类集@odata.id更新为Json属性名:

    class Member
{
    [JsonProperty("@odata.id")]
    public string ODataId { get; set; }
}

谢谢你的回答,但我使用的类定义与你在选项2中提到的完全相同。但是,在从开发人员帐户切换到许可的office 365帐户后,该问题似乎得到了解决。