首页 > 解决方案 > 无法在 MS Graph National US Cloud 中创建事件或团队成员

问题描述

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

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

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

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

我使用 API 的 v1.0 或 beta 版本收到错误。

我不确定这是否重要,但我正在使用带有 C# 的 .NET 4.7.2 中的 WebClient 类。

失败的事件请求:

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"
    }
  }
}

标签: c#microsoft-graph-apimicrosoft-teams

解决方案


2021 年 11 月 15 日更新

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

原帖

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

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

换句话说。MS 文档就像一个设计提案/营销文档,旨在让您为他们购买和测试他们的服务。


推荐阅读