Prev: SharePoint
Next: A stupid question about classes
From: Robbert van Andel on 1 May 2010 02:59 I've been trying to connect to our SharePoint server's webservices with PHP. I downloaded the nusoap library and have been trying to make a connection using sample code from various websites. I keep getting the following error: <h1>You are not authorized to view this page</h1> You do not have permission to view this directory or page using the credentials that you supplied because your Web browser is sending a WWW-Authenticate header field that the Web server is not configured to accept. <h2>HTTP Error 401.2 - Unauthorized: Access is denied due to server configuration.<br>Internet Information Services (IIS)</h2> My code looks like this: require_once('/usr/share/php/nusoap/nusoap.php'); /* Your username and password, separated by a colon Domain may be optional, depending on your setup */ $auth = "username:password"; /* Location of the Lists.asmx file If the list is in a subsite, the subsite must be in the path */ $wsdl = "http://domain.com/depts/is/private/_vti_bin/Lists.asmx?WSDL"; /* GUID of the list */ $guid = "Shared Documents"; /* Setup NuSOAP Sharepoint requires NTLM Authorization You need a fairly recent version of CURL installed for this */ try { $client = new nusoap_client($wsdl,true); $client->setCredentials("","","ntlm"); $client->setUseCurl(true); $client->useHTTPPersistentConnection(); $client->setCurlOption(CURLOPT_USERPWD, $auth); //$client->soap_defencoding = 'UTF-8'; $xml = ' <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/"> <listName>' . $guid . '</listName> <viewName>All Documents</viewName> <query> <xsd:schema>schema</xsd:schema>xml</query> <viewFields> <xsd:schema>schema</xsd:schema>xml</viewFields> <rowLimit>string</rowLimit> <queryOptions> <xsd:schema>schema</xsd:schema>xml</queryOptions> <webID>string</webID> </GetListItems> </soap:Body> </soap:Envelope> '; $result = $client->call("GetListItems",$xml); if(isset($fault)) { echo "<p>Error: " . $fault . "</p>\n"; } echo "<pre>\$result = " . htmlspecialchars(print_r($result,true)) . "</pre>\n"; } catch(Exception $e) { echo "<p>" . $e->getMessage() . "</p>\n"; } Our SharePoint server uses integrated authentication. I've tried several permutations of the username, including just the username, domain\username and username(a)domain. All are returning the same error. My guess is that PHP is sending the username/password combination in a way that SharePoint doesn't like. Has anyone been able to connect to SharePoint's web services and if so, how? Thanks
|
Pages: 1 Prev: SharePoint Next: A stupid question about classes |