Call Sharepoint web service from a PHP script
Posted by: kniganapolke on: December 29, 2009
In the previous post I showed how to authorize through a web form. We get a cookie among the response headers in case of successfull authorization. This post shows how to use the authorization cookie or use the NTLM (Windows) authentication to make calls to Sharepoint web services.
soap_defencoding = "UTF-8";
$err = $client->getError();
if ($err) {
// Handle error
return false;
}
// To authorize to a Sharepoint server that uses NTLM (Windows) authentication scheme from the same LAN
//$client->setCredentials($user, $pass, "ntlm");
// $cookie - received after authorization through a web form
$client->setCurlOption(CURLOPT_COOKIE, $cookie);
$client->setCurlOption(CURLOPT_SSL_VERIFYPEER, FALSE);
$client->setCurlOption(CURLOPT_SSL_VERIFYHOST, FALSE);
$client->setCurlOption(CURLOPT_TIMEOUT, 25); // To avoid total page timeout
// Sharepoint fields' names
$field1_name = "ABC 123";
$field2_name = "DEF 456";
// Fields values
$field1_value = "ABC 123";
$field2_value = "DEF 456";
// $list_guid - find out the GUID of the target Sparepoint list
// $view_guid - find out the GUID of the target Sparepoint view
$newField = '
<UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>{'.$list_guid.'}</listName>
<updates>
<Batch OnError="Continue" ListVersion="1" ViewName="{'.$view_guid.'}">
<Method ID="1" Cmd="New">
<Field Name="'. $field1_name .'">'. $field1_value .'</Field>
<Field Name="'. $field2_name .'">'. $field2_value .'</Field>
</Method>
</Batch>
</updates>
</UpdateListItems>';
$result = $client->call("UpdateListItems", $newField);
if ($client->fault){
// Handle error
return false;
}
?>
I use Nusoap classes to call Sharepoint web services to add a new element to a list in this code snippet.
Advertisement
Like this:
Be the first to like this post.
Tags:
authorization,
cookie,
curl,
list,
ntlm,
nusoap,
php,
sharepoint,
sps,
UpdateListItems,
view,
web service,
windows authentication