我正在使用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 body作为更改查询: -
{
'query': {
'__metadata': {
'type': 'SP.ChangeQuery'
},
'Update': true, 'Add': true,'Item':true,'DeleteObject':true
}
}
现在我想从这些更改中获取内容,如果它是文件更改。但我无法将结果WebId或ItemId中获得的Id与可以使用sharepoint的文件和文件夹api获取的文件ID相关联。那么如何将此结果与实际文件ID或文件相关联以获取已更改文件的内容?
答案 0 :(得分:3)
通过进一步研究,我发现我们可以通过调用以下方式获取文件内容: -
GET https://mysite.sharepoint.com/<site_name>/_api/web/lists(guid'<list-id>')/items(<item-id>)/File
使用从/getchanges
api获取的列表ID和项目ID的sharepoint api。然后使用响应的 ServerRelativeUrl 字段通过调用获取文件内容: -
GET http://mysite.sharepoint.com/<site_name>/_api/web/getfilebyserverrelativeurl('<url>)/$value?binaryStringResponseBody=true
干杯:)