代码之家  ›  专栏  ›  技术社区  ›  Nick Prozee Achraf C.

无法使用Microsoft Graph Api创建包含“对象”的列表项

  •  2
  • Nick Prozee Achraf C.  · 技术社区  · 6 年前

    我正在尝试使用创建SharePoint ListItem Microsoft Graph .

    我用来发布/修补的方法 ListItems 除非我将这些方法应用于包含对象(如组、用户甚至图像)的列表,否则这些方法都有效。

    在我的示例中,我将发布、修补或获取 /beta/sites/root/lists/1231231231234/items/4/fields .

    SharePoint列表项

    {
      "@odata.context":
        "https://graph.microsoft.com/beta/$metadata#sites('root')/lists('1234123412341234')/items('4')/fields/$entity",
      "@odata.etag": "\"123412341234,18\"",
      "Title": "Test Title",
      "description": "Some random description",
      "assignedGroups": [
        {
          "LookupId": 7818,
          "LookupValue": "7818",
          "Email": "DemoGroep@12341234.onmicrosoft.com"
        },
        {
          "LookupId": 7822,
          "LookupValue": "7822",
          "Email": "TestDemo@12341234.onmicrosoft.com"
        }
      ],
      "startDate": "2018-05-15T07:00:00Z",
      "endDate": "2018-08-18T07:00:00Z",
      "alwaysAvailable": false,
      "id": "4",
      "ContentType": "Item",
      "Modified": "2018-05-17T13:27:21Z",
      "Created": "2018-04-03T09:34:49Z",
      "AuthorLookupId": "7688",
      "EditorLookupId": "5222",
      "_UIVersionString": "1.0",
      "Attachments": false,
      "Edit": "",
      "LinkTitleNoMenu": "Test123123",
      "LinkTitle": "Test123123",
      "ItemChildCount": "0",
      "FolderChildCount": "0",
      "_ComplianceFlags": "",
      "_ComplianceTag": "",
      "_ComplianceTagWrittenTime": "",
      "_ComplianceTagUserId": "",
      "AppEditorLookupId": "25"
    }
    

    工作示例 (注意:这是因为我更新了一个简单的字段,比如'Title',类型为String)

    {
       Title: "SomeNewTitle"
    }
    

    不起作用的例子 (返回) 400 'The request is malformed or incorrect.' )

    {
      assignedGroups: [{"Email": "Test1003@12341234o.onmicrosoft.com"}]
    }
    

    我在这里尝试了多种物体,但都不起作用。。甚至空数组(用于清除组成员身份)也在返回 400 地位

    我觉得这是Graph API中的一个限制/缺陷

    2 回复  |  直到 6 年前
        1
  •  1
  •   Marc LaFleur    6 年前

    不幸的是,这是Microsoft Graph的SharePoint API的一个已知问题。有一个 UserVoice request to fix this ,这绝对需要更多的选票。

        2
  •  0
  •   Vincent Nguyen    6 年前

    试试下面的贴片主体:

    //PATCH
    {
      assignedGroups: {"Email": "Test1003@StichtingNuovo.onmicrosoft.com"}
    }
    

    因为在 listItem 它返回一个数组 assignedGroups 但你只更新了一个。如果您需要更新多个,我相信电话会是:

    //PATCH
    {
      assignedGroups: [{"Email": "Test1003@StichtingNuovo.onmicrosoft.com"},
                       {"Email": "AnotherEmail@microsoft.com"}
                      ]
    }