如何指向 to/get 文件内容或从共享点更改 api 调用的文件

How to point to/get the file contents or file from sharepoint changes api call

我正在使用 sharepoint rest api /getchanges 来获取 sharepoint 站点中的更改并获得如下结果:-

{
    "d": {
        "results": [{
            "__metadata": {
                "id": "https://mysite.sharepoint.com/test/_api/SP.ChangeItem38931e4b-01fa-4744-b478-e4f2b7cd7d8c",
                "uri": "https://mysite.sharepoint.com/test/_api/SP.ChangeItem38931e4b-01fa-4744-b478-e4f2b7cd7d8c",
                "type": "SP.ChangeItem"
            },
            "ChangeToken": {
                "__metadata": {
                    "type": "SP.ChangeToken"
                },
                "StringValue": "1;1;16393f71-acfe-4ff4-a8e2-5668f572d3c6;636035775676900000;17124328"
            },
            "ChangeType": 1,
            "SiteId": "16393f71-acfe-4ff4-a8e2-5668f572d3c6",
            "Time": "2016-07-08T12:26:07Z",
            "Editor": "",
            "EditorEmailHint": null,
            "ItemId": 21,
            "ListId": "244dcdb3-d056-4184-aa21-1dc7f507f199",
            "ServerRelativeUrl": "",
            "SharedByUser": null,
            "SharedWithUsers": null,
            "WebId": "9eb4d645-db81-4e3b-b2c1-cecc0b4efe5f"
        }]
    }
}

我使用的请求是:-

POST http://mysite.sharepoint.com/test/_api/site/getchanges 以 json 正文作为更改查询:-

  {
  'query': {
    '__metadata': {
      'type': 'SP.ChangeQuery'
    }, 
    'Update': true, 'Add': true,'Item':true,'DeleteObject':true
  }
}

现在如果是文件更改,我想从这些更改中获取内容。但是我无法将结果 WebId 或 ItemId 中获得的 Id 与使用共享点的文件和文件夹 api 可以获得的文件 id 关联起来。那么如何将此结果与实际文件 ID 或文件相关联以获取已更改文件的内容?

通过进一步的研究,我发现我们可以通过调用 :-

来获取文件内容
GET https://mysite.sharepoint.com/<site_name>/_api/web/lists(guid'<list-id>')/items(<item-id>)/File 

api 的共享点使用从 /getchanges api 获得的列表 ID 和项目 ID。然后使用响应的ServerRelativeUrl字段调用:-

获取文件内容
GET http://mysite.sharepoint.com/<site_name>/_api/web/getfilebyserverrelativeurl('<url>)/$value?binaryStringResponseBody=true

干杯:)