2017-03-16 95 views
0

我正在使用Sharepoint 2013 REST API來查找發生在根站點中的增量更改。我的要求如下:getChanges Sharepoint 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'} 
           } 
      } 

In response I am getting lot of changerequest objects. One of them is as below: 

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

有人能幫我理解迴應嗎?我很難找出發生變化的途徑。此外,這會改變發生在網站子網站中的API捕獲更改嗎?

在此先感謝

回答

1

是的列表和庫在一天結束時是一回事。您可以通過剝離上述案例中的最後一個片段(Items(1))來從odata.editLink獲取列表標題。如果您調用該路徑,它會爲您提供列表與已修改的項目/文件的詳細信息。如果您想要用戶的詳細信息,請調用/ _api/Web/lists/getbytitle('用戶信息列表')/ Items(EditorId)。如果您想要項目/文件調用odata.editlink的路徑,並且返回的serverrelativeurl參數將具有指向它的路徑,並且標題將具有項目/文件的標題。

+0

謝謝馬滕:) –

0

當然,中ChangeType是你需要的是一個枚舉信息的主要部分。你可以看一下這裏的數字友好名稱:ChangeType Enumeration

因此,在這種情況下,看起來像一個更新的SPWeb的設置與「6e21eadd-4155-494d-9a8e-1046865bdd4b」

一個GUID

您可能還想查看在REST查詢中使用$ expand操作符以獲取更多字段。

+0

謝謝你的答案..但我不明白的是我在哪裏可以獲得有關發生實際變化的對象名稱的信息,即如果變化在列表中,那麼我如何檢索這是響應的名稱和其他細節? –

+1

您的查詢只需要更改網頁,而不是列表,這就是爲什麼您沒有看到更多信息。更改'網站':真到'列表':真正的獲取列表更改:) 然後你會看到的細節,你會看到ChangeType和ObjectsChanged(用Web查詢對象更改只能是Web或導航)。它不會給你一個完整的突破,但是完整的改變是什麼,它像Field或ContentType那樣受到什麼影響。但不是什麼領域,或什麼內容類型,沒有比較前後。 – Maarten