代码之家  ›  专栏  ›  技术社区  ›  Dimitri

Microsoft Graph Post创建组“错误请求”的操作

  •  0
  • Dimitri  · 技术社区  · 6 年前

    我们正在尝试向MicrosoftGraphAPI发布一个请求,以创建一个组,如所述 HERE

    https://graph.microsoft.com/v1.0/groups 内容类型设置为aplication/json 我们还有一个有效的拜尔代币。

    我们使用的是Microsoft.Graph软件命名空间(NuGet包),所以我们用数据填充属性并调用JsonConvert.SerializeObject(group)将组对象序列化为Json。

    这就是我们如何建立和序列化:

     Microsoft.Graph.Group group = new Microsoft.Graph.Group();
                    group.Description = "Self help community for library";
                    group.DisplayName = "Library Assist";
                    group.GroupTypes = new[] { "Unified" };
                    group.MailEnabled = true;
                    group.MailNickname = "library";
                    group.SecurityEnabled = true;
    
       string json = JsonConvert.SerializeObject(group);
    
       var content = new StringContent(json);
       var response = httpclient.PostAsJsonAsync(Uri, content).Result;
    

     httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "...value of baerer token...");
     httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    

    我们正在从 https://graph.microsoft.com/v1.0 /groups 去吧

    我们得到的回应是 Bad request status code 400 这意味着请求URI、标头或正文中存在错误,但 Graph Explorer 与上面相同的代码工作正常,我们在响应中得到结果。 我在监督什么?

    感谢您的反馈或建议。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Gautam Sheth    6 年前

    既然你已经在使用 Microsoft.Graph 命名空间中,可以使用 GraphServiceClient

    var graphserviceClient = new GraphServiceClient(
        new DelegateAuthenticationProvider(
            (requestMessage) =>
            {
                requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", "<your-access-token>");              
            }));
    
    var group = new Microsoft.Graph.Group
    {
        DisplayName = "Library Assist",
        Description = "Self help community for library",
        MailNickname = "library",
        MailEnabled = true,
        SecurityEnabled = true,
        GroupTypes = new List<string> { "Unified" }
    };      
    
    var createdGroup = await graphserviceClient.Groups.Request().AddAsync(group);
    

    参考- Intro to the Microsoft Graph .NET Client Library

    推荐文章