如何指向 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
干杯:)
我正在使用 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
干杯:)