无法在 MS Graph 国家美国云中创建事件或团队成员

Cannot Create Events or Team Members in MS Graph National US Cloud

我正在将一个应用程序与 MS Graph API 集成。该应用程序将使用文件和文件夹创建 Teams,并在用户的日历上创建事件。在我们的商业 Graph 环境中,一切都运行良好,但是当我们尝试对我们的美国国家云环境 (graph.microsoft.us) 执行所有相同的请求时,我们 运行 遇到了问题。

  1. 发帖到 /teams/{team id}/members returns 每次都是 404。请求的格式与示例完全相同:https://docs.microsoft.com/en-us/graph/api/team-post-members?view=graph-rest-1.0&tabs=http

  2. 每次发布到 me/events 或 /users/{userPrincipalName}/events returns 400。我什至尝试手动格式化请求,就像更改日期和地址的示例一样无济于事:https://docs.microsoft.com/en-us/graph/api/user-post-events?view=graph-rest-1.0&tabs=http

我可以 post 各种其他请求。例如:应用程序创建一个团队,将文件夹添加到默认频道,并在尝试执行失败的请求之前修改这些文件夹的权限。

我在使用 API 的 v1.0 或测试版时收到错误。

我不确定它是否重要,但我在 .NET 4.7.2 中使用 WebClient class 和 C#。

事件请求失败:

POST https://graph.microsoft.us/beta/users/<my email>/calendar/events
{
  "subject": "Some - Meeting - Name",
  "body": {
    "contentType": "HTML",
    "content": ""
  },
  "start": {
    "dateTime": "2021-07-08T21:00:00",
    "timeZone": "UTC"
  },
  "end": {
    "dateTime": "2021-07-08T22:00:00",
    "timeZone": "UTC"
  },
  "location": {
    "displayName": "Virtual"
  },
  "attendees": [
    {
      "emailAddress": {
        "address": "<My email>",
        "name": "<My name>"
      },
      "type": "required"
    },
    {
      "emailAddress": {
        "address": "<colleague email>",
        "name": "<colleague name>"
      },
      "type": "required"
    }
  ],
  "allowNewTimeProposals": true,
  "isOnlineMeeting": true,
  "onlineMeetingProvider": "teamsForBusiness",
  "transactionId": "fa3b8eb3-02b0-435a-ab29-5019cab134eb"
}

回应

request-id: 51351ca3-9354-4eae-8d8c-d09f168594ab
client-request-id: 51351ca3-9354-4eae-8d8c-d09f168594ab
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"USGov Arizona","Slice":"SliceC","Ring":"4","ScaleUnit":"000","RoleInstance":"AGSFE_IN_0"}}
Strict-Transport-Security: max-age=31536000
Content-Length: 243
Cache-Control: private
Content-Type: application/json
Date: Thu, 08 Jul 2021 00:05:47 GMT
 
Body:
{
  "error": {
    "code": "UnableToDeserializePostBody",
    "message": "were unable to deserialize ",
    "innerError": {
      "date": "2021-07-08T00:05:48",
      "request-id": "51351ca3-9354-4eae-8d8c-d09f168594ab",
      "client-request-id": "51351ca3-9354-4eae-8d8c-d09f168594ab"
    }
  }
}

添加成员请求失败

POST https://graph.microsoft.us/beta/teams/<team-id>/members
{
  "@odata.type": "#microsoft.graph.aadUserConversationMember",
  "roles": [],
  user@odata.bind: https://graph.microsoft.us/beta/users('<user guid>')
}

回应

{
  "error": {
    "code": "NotFound",
    "message": "Not Found",
    "innerError": {
      "date": "2021-07-08T00:35:13",
      "request-id": "b488d292-2733-4512-a759-507a3a58bdbb",
      "client-request-id": "b488d292-2733-4512-a759-507a3a58bdbb"
    }
  }
}

2021 年 11 月 15 日更新

添加团队成员似乎已修复。与错误一样,修复似乎已经通过,但没有 public 文档。我不确定“allowNewTimeProposals”标志,因为我们只是将其排除在我们的请求之外。

原版Post

  1. 对于事件请求,使用“allowNewTimeProposals”属性 会导致 Graph 在使用美国国家云时抛出“UnableToDeserializePostBody”错误。但是,全球端点使用此参数可以正常工作。 MS 的回答是下个季度会修复这个问题。

  2. .us Graph 端点的添加团队成员请求已损坏,他们计划在下个季度修复它。

也就是说。 MS 文档就像一个设计 proposal/marketing 文档,旨在让您为他们购买和测试他们的服务。