-2

私は REST プログラミングが初めてで、Microsoft Graph API を使用して Office 365 グループを作成および更新しようとしていますが、両方の操作で 500 - 内部サーバー エラーの応答が返され、何が問題なのかを理解することはあまりありません。

新しいグループを作成するためのコードを簡略化したものを次に示します。

public async Task<Group> CreateGroup()
{
    string accessToken = GetAccessToken(); // method for getting the Graph token

    string newGroup =   "{" +
                            "\"group\": " +
                            "{" +
                                "\"description\": \"description-value\"," +
                                "\"displayName\": \"displayName-value\"," +
                                "\"groupTypes\": [" +
                                   "\"Unified\"" +
                                "]," +
                                "\"mail\": \"somemail@tenantname.com\"," +
                                "\"mailEnabled\": true," +
                                "\"mailNickname\": \"mailNickname-value\"," +
                                "\"securityEnabled\": \"false\"" +
                            "}" +
                        "}";

    using (var client = new HttpClient())
    {
        using (var request = new HttpRequestMessage(HttpMethod.Post, https://graph.microsoft.com/v1.0/groups))
        {
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

            request.Content = new StringContent(JsonConvert.SerializeObject(newGroup), Encoding.UTF8, "application/json");

            using (HttpResponseMessage response = await client.SendAsync(request))
            {
                if (response.IsSuccessStatusCode)
                {
                    // parse and return content
                }
                else 
                {
                    // handle error
                }
            }
        }
    }
}

リクエストとレスポンスメッセージは次のとおりです。

RequestMessage  {Method: POST, RequestUri: 'https://graph.microsoft.com/v1.0/groups', Version: 1.1, Content: System.Net.Http.StringContent, Headers:
{
  Authorization: Bearer XXX...
  Content-Type: application/json; charset=utf-8
  Content-Length: 243
}}


ResponseMessage  {StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, 
    Headers:
    {
      Transfer-Encoding: chunked
      request-id: xxxx-...
      client-request-id: xxxx-...
      x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"West Europe","Slice":"SliceA","ScaleUnit":"001","Host":"AGSFE_IN_1","ADSiteName":"AMS"}}
      Cache-Control: private
      Date: Sun, 06 Dec 2015 12:51:26 GMT
      Server: Microsoft-IIS/8.5
      X-Powered-By: ASP.NET
      Content-Type: application/json; charset=utf-8
    }
}

ここで、人々が統一されたグループを作成することに成功した 2 つの投稿を見たので、コード内で見つけられないものであると推測しています。他の誰かが同じエラーを経験しましたか?

4

1 に答える 1

1

要求では、すべてのグループ プロパティを "group" 要素にラップする必要はありません。正しいリクエスト ペイロードのサンプルは次のようになります。

{  
    "description": "description-value",
    "displayName": "displayName-value",
    "groupTypes": [
      "Unified"
    ],
    "mailEnabled": true,
    "mailNickname": "mailNickname-value",
    "securityEnabled": false
}

ドキュメントで使用されているサンプルを修正するためにhttps://github.com/OfficeDev/microsoft-graph-docs/issues/65を作成しました。

于 2015-12-07T20:26:35.910 に答える