PHP中的Sharepoint GetListItemChangesSinceToken CURL请求

时间:2016-04-14 14:20:46

标签: php json curl sharepoint sharepoint-2013

我尝试使用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)

1 个答案:

答案 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

here存储库下可以找到更多示例phpSPO