getChanges Sharepoint rest API

时间:2017-03-16 16:41:57

标签: python rest sharepoint

我正在使用Sharepoint 2013 REST api来查找根站点中发生的增量更改。我的要求如下:

headers = {"Authorization": 'Bearer ' + access_token, "accept": "application/json", "odata": "verbose"}

headers["content-type"] = "application/json;odata=verbose"
body = { 'query': { '__metadata': { 'type': 'SP.ChangeQuery' },'Web': True, 'Update': True, 'Add': True,
   'ChangeTokenStart':{'__metadata':{'type':'SP.ChangeToken'}, 
   'StringValue': '1;1;5b9752ee-f410-4cc6-9ab6-eb18c2ad802f;636252579049500000;89866182'}
     }
}

作为回应,我收到了很多changerequest对象。其中一个如下:

{
            'odata.type': 'SP.ChangeWeb',
            'ChangeToken': {
                'StringValue': '1;1;5b9752ee-f410-4cc6-9ab6-eb18c2ad802f;636252779425600000;89976872'
            },
            'WebId': '6e21eadd-4155-494d-9a8e-1046865bdd4b',
            'ChangeType': 2,
            'odata.id': 'https://<site url>/_api/SP.ChangeWeb87f1a9c6-937b-4507-973d-fc2d1b949aed',
            'SiteId': '5b9752ee-f410-4cc6-9ab6-eb18c2ad802f',
            'odata.editLink': 'SP.ChangeWeb87f1a9c6-937b-4507-973d-fc2d1b949aed',
            'Time': '2017-03-16T16:19:02.56Z'

有人可以帮我理解答案吗?我很难找到发生变化的路径。此外,这会改变API捕获站点中子站点中发生的变化吗?

2 个答案:

答案 0 :(得分:1)

是列表和图书馆在一天结束时是一回事。您可以通过剥离上述案例中的最后一个段(Items(1))从odata.editLink获取列表标题。如果您调用该路径,它将为您提供列表与已修改项目/文件的详细信息。如果您想要用户的详细信息,请调用/ _api / Web / lists / getbytitle(&#39;用户信息列表&#39;)/ Items(EditorId)。如果你想要项目/文件的路径调用odata.editlink并且返回的serverrelativeurl参数将具有它的路径,title将具有项目/文件的标题。

答案 1 :(得分:0)

当然,ChangeType是您需要的主要信息,它是可枚举的。您可以在此处查找数字的友好名称:ChangeType Enumeration

因此,在这种情况下,这似乎是对SPWeb设置的更新,其中包含&#39; 6e21eadd-4155-494d-9a8e-1046865bdd4b&#39;

您可能还希望在REST查询中使用$ expand运算符来获取其他字段。