【问题标题】:Create Plan (BETA) doesn't seem to work创建计划(测试版)似乎不起作用
【发布时间】:2017-08-23 19:54:03
【问题描述】:

我正在尝试根据http://graph.microsoft.io/en-us/docs/api-reference/beta/api/user_post_plans 使用 Graph 创建计划者计划

但我一直收到以下 BadRequest 响应:

"error": {
    "code": "BadRequest",
    "message": "Write requests are only supported on contained entities",
    "innerError": {
        "request-id": "eae08944-6f47-477e-9950-ade31c473dd7",
        "date": "2016-03-07T11:59:04"
    }

根据我发布到https://graph.microsoft.com/beta/me/plans 的文档,正文如下:

"createdBy": "<my uuid>",
"owner": "<a previously generated group uuid>",
"title": "Blah Plan"

没有运气。之前生成的组如下所示:

{
        "id": "<uuid>",
        "classification": null,
        "createdDateTime": "2016-03-07T09:53:26Z",
        "description": "Int Test",
        "displayName": "Int Test",
        "groupTypes": [
            "Unified"
        ],
        "mail": "<email_address>",
        "mailEnabled": true,
        "mailNickname": "IntTest",
        "onPremisesLastSyncDateTime": null,
        "onPremisesSecurityIdentifier": null,
        "onPremisesSyncEnabled": null,
        "proxyAddresses": [
            "SMTP:<email_address>"
        ],
        "renewedDateTime": "2016-03-07T09:53:26Z",
        "securityEnabled": false,
        "visibility": "Public"
    }

我尝试了各种请求正文的组合。有和没有 createdBy 值。有和没有所有者价值观。似乎没有任何效果。

任何想法我哪里出错了?该错误在我的集成测试以及图形浏览器中都是一致的。

谢谢

【问题讨论】:

    标签: microsoft-graph-api azure-ad-graph-api


    【解决方案1】:

    正如 Sriram 所说,这是一个文档错误。它刚刚被修复。更新后的网址为:https://graph.microsoft.io/en-us/docs/api-reference/beta/api/plan_post_plans

    问题在于调用哪个端点来创建计划。 您应该调用“/plans”而不是“/me/plans”。您还应该注意,您传入的某些数据是只读的。您不应包含“createdBy”,因为这是由服务设置的只读属性,而不是您。 plan resource documentation 将向您显示可以在计划中设置的所有属性。

    最后要记住的是,每个组只能有一个计划。如果您尝试制定第二个计划,您将收到来自 API 的错误消息。

    【讨论】:

    • 这是一个错误,当他们使用其他 API 的调用方式时,例如团队、聊天、报告、工作区......
    【解决方案2】:

    2017 年 7 月,API 进行了修改并发布。 creating a plan 的新端点现在是:

    https://graph.microsoft.com/v1.0/planner/plans
    

    带有请求正文,例如像这样:

    {
      "owner": "<group-id>",
      "title": "my plan title"
    }
    

    其中 必须是之前创建的组的 id。

    【讨论】:

      【解决方案3】:

      对这里的混乱表示歉意。该文档有一个错误将很快更新。要创建计划,请确保已创建组,并且用户是组成员。然后创建计划,将 owner 设置为 group id,createdBy 设置为 user id。

      【讨论】:

      • 不幸的是,这似乎也不起作用。我被认证为我的用户。我使用 api 创建了组,我作为所有者成员(在 Outlook 的组 ui 中确认),然后尝试使用组 id 作为所有者值和我的用户 id 作为 createdBy 值来创建计划。还是没有骰子。在相关说明上。将任务(使用 api)添加到先前创建的存储桶也会产生相同的错误。使用使用 tasks.office.comtasks.office.com 的计划程序 UI 创建的计划和存储桶的 planId 和 bucketId
      • 您能否分享 POST /beta/plans 请求的请求 ID 和时间戳?
      • 当然。 “innerError”:{“request-id”:“eae08944-6f47-477e-9950-ade31c473dd7”,“日期”:“2016-03-07T11:59:04”}
      • 这个问题几个月后仍然存在。
      【解决方案4】:

      对于这个问题,能否请您尝试完全按照以下步骤操作?

      • 创建统一组
      • 将用户添加为统一组的成员
      • 通过发送 {“owner”: group-id, “title”: string} 创建计划 - 不要发送“createdBy”字段,因为它是只读字段

      对于向存储桶添加任务,如果您发送它应该可以正常工作

      {“planId”:plan-id,“bucketId”:bucket-id,“title”:字符串}

      如果这仍然不起作用,请随时通过 lixian@microsoft.com 与我联系。

      谢谢,

      肖恩

      【讨论】:

      • 关于理查德的评论并没有改善答案。只要坚持答案。
      • 感谢您的反馈。
      猜你喜欢
      • 2016-05-30
      • 2019-06-25
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      相关资源
      最近更新 更多