我尝试使用PHP和GetListItemChangesSinceToken从Sharepoint中的文档列表中获取最新更改。我使用phpSPO作为SDK,因为没有适用于PHP的任何官方Sharepoint SDK。
到目前为止,我有这个:
$payload = array(
'query' => array(
'__metadata' => array('type' => 'SP.ChangeLogItemQuery'),
'ViewName' => '',
'QueryOptions'=> '<QueryOptions><Folder>Shared Documents</Folder></QueryOptions>'
)
);
$headers = array();
$headers["X-HTTP-Method"] = "MERGE";
$changes = $this->request->executeQueryDirect($this->settings->URL . "/_api/web/Lists/GetByTitle('Documents')/GetListItemChangesSinceToken", $headers, $payload);
返回:{"error":{"code":"-2147467261, System.ArgumentNullException","message":{"lang":"en-US","value":"Value cannot be null.\r\nParameter name: query"}}}
我尝试更改X-HTTP-Method
并更改数组以适应记录的JSON / XML请求(JSON对象中的XML,来自Microsoft)
答案 0 :(得分:3)
第一种方法
以下示例演示了如何使用GetListItemChangesSinceToken method
:
$list = $ctx->getWeb()->getLists()->getByTitle($listTitle);
$query = new ChangeLogItemQuery();
//to request all the items set ChangeToken property to null
$query->ChangeToken = "1;3;e49a3225-13f6-47d4-a146-30d9caa05362;635969955256400000;10637059";
$items = $list->getListItemChangesSinceToken($query);
$ctx->executeQuery();
foreach ($items->getData() as $item) {
print "[List Item] $item->Title\r\n";
}
第二种方法
由于SharePoint REST Client SDK for PHP现在支持GetListItemChangesSinceToken method
,之前的示例可以像这样调用:
Exists