• 0

PHP talking to SharePoint


Question

I'm looking at getting PHP talking to SharePoint... Initially just posting an item to a SharePoint list from PHP.

SharePoint exposes a number of web services (http://niklouch.activesharepoint.com/phpint/_vti_bin/Lists.asmx?WSDL).

I am trying to talk to these using SOAP (via the nuSoap PHP library).

I believe I am using it correctly but possibly not. The response I am getting from the server is debugged here (http://www.niklouch.com/sites/work/php_sp/test2.php) - basically:

  Quote
"Server was unable to process request. --> The root element is missing."

Has anyone worked on something like this before?

For reference:

SharePoint SOAP WSDL: http://niklouch.activesharepoint.com/phpin...Lists.asmx?WSDL

SharePoint WebService: http://niklouch.activesharepoint.com/work/...UpdateListItems

My debugged output: http://www.niklouch.com/sites/work/php_sp/test2.php

Code:

<?PHP

/* Requires the NuSOAP library */
require_once('nusoaplib/nusoap.php');

/* Username and password, separated by a colon. Domain may be optional, depending on setup */
$auth = "webtest:webtest";

/* Location of the Lists.asmx file */
$wsdl = "http://niklouch.activesharepoint.com/phpint/_vti_bin/Lists.asmx?WSDL";

/* GUID of the list */
$guid = "{48A2B76C-2E23-4ED0-9C12-DC98897C228A}";

/* Setup NuSOAP. Sharepoint requires NTLM Authorization. Recent version of CURL needed for this */
$client = new nusoap_client($wsdl, true);
$client->setCredentials("","","ntlm");
$client->setCurlOption(CURLOPT_USERPWD, $auth);

$err = $client->getError();
if ($err) {
	echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
	echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
	exit();
}

/* XML for the request */
$xml = '
<UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">t;listName>'.$guid.'</listName>
	<updates>
		<Batch>
			<Method ID="1" Cmd="New">
				<Field Name="ID" />
				<Field Name="Title">My Title</Field>
			</Method>
		</Batch>
	</updates>
</UpdateListItems>
';

/* Invoke the Web Service */
$result = $client->call('UpdateListItems', $xml);

/* Check for Errors */
if(isset($fault)) {
	echo("<h2>Error</h2>". $fault);
}

/* Debugging Info */
echo("<h2>Request</h2><pre>" . htmlspecialchars($client->request, ENT_QUOTES) . "</pre>");
echo("<h2>Response</h2><pre>" . htmlspecialchars($client->response, ENT_QUOTES) . "</pre>");
echo("<h2>Debug</h2><pre>" . htmlspecialchars($client->debug_str, ENT_QUOTES) . "</pre>");

unset($client);
?>

Link to comment
https://www.neowin.net/forum/topic/773860-php-talking-to-sharepoint/
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Oh I'm posting 1 item with just a title, nothing more. Never really got into the whole web services over PHP thing. May need to try another webservice (simpler) first and then move on to this...

But it's been set as my "Get this working for your 1st day of work" task for my new job! :s

  • 0

Yeah, I'm not the best person to ask either, however the above worked once for me doing something similar.

Maybe the problem is that you are only posting a title? I'm assuming theres a content section this title is applied to (unless its a name of a directory or something?) That could possibly be what its relating to when returning 'The root element is missing'.

EDIT: Btw, what the new job? Your confused smiley makes it seem your not sure why they asked you do this.. are you being asked to do this by those who think that because your in the I.T department somewhere you should know all everything computer related ever?

  • 0

LOL - no I made a sharepoint list that just contains a title, nothing more. And the confused smiley is sorta because this was not advertised as part of the role, but I mentioned I was also a SharePoint developer, and so they sprung into "Wow - we want a SharePoint connector for our product"... Makes sense totally, but PHP and SharePoint are two languages never destined to play well together, and "SharePoint development" to me has always been within either the SharePoint environment or at least with .net based languages - so I can use the .net libraries...

It would be a VERY cool piece of engineering, and I know how I wanna make it - but it just isn't seeming to work.

  • 0

I'm really not sure.. Never tried using PHP with any other language yet, just starting to really get to grips with PHP itself only recently.

This is probably wrong, but when I go to activesharepoint.com it asks me to login to web2003.activeisp.com, is it possible your wsdl variable is set to the wrong target?

  • 0

Is it necessary for NuSoap library that the sharepoint site must allow anonymous access? Well, I want to do the same but I am not able to do. I searched alot and alot but didn't find any solution which worked for me :(

Can you please help.

Thanks

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Send more sensitive documents to Meta. What could possibly go wrong...
    • I have not heard of that name in a while. I stopped reading his content and listening to him some time ago.
    • Consumer Reports is flat out wrong. Wouldn't be the first time it's a fact that when you have more moving parts, you have more room for failure. Less points of failure when all you replace on an EV is the tires and the wipers.
    • WYSIWYG Web Builder 20.2.2 by Razvan Serea Web Buialder is a WYSIWYG (What-You-See-Is-What-You-Get) program used to create complete web sites. WYSIWYG means that the finished page will display exactly the way it was designed. The program generates HTML (HyperText Markup Language) tags while you point and click on desired functions; you can create a web page without learning HTML. Just drag and drop objects to the page position them "anywhere" you want and when youre finished publish it to your web server (using the build in Publish tool). Web Builder gives you full control over the content and layout of your web pages. One Web Builder project file can hold multiple web pages. Desktop publishing for the web, build web sites as easy as Drag & Drop "One Click Publishing" No FTP program needed. No special hosting required, use with any Hosting Service! Easily create forms using the built-in Form Wizard plus Form validation tools and built-in CAPTCHA. Advanced graphics tools like shapes, textart, rotation, shadows and many other image effects. Fully integrated jQuery UI (Accordion, Tabs etc), animations, effects and built-in ThemeRoller theme editor. Google compatible sitemap generator / PayPal eCommerce Tools Many navigation tools available: Navigation bars, tab menus, dropdown menus, sitetree, slidemenus. Built-in Slide Shows, Photo Galleries, Rollover images, Banners etc. Support for YouTube, Flash Video, Windows Media Player and many other video formats. Unique extension (add-on) system with already more than 250 extensions available! Create HTML5 / CSS3 websites today HTML5 document type (optimized HTML5 output). HTML5 audio/video and YouTube HTML5 support. HTML5 forms: native form validation, new input types and options, web storage. HTML5 canvas and svg support in shapes and other drawing tools. CSS3 @font-face. Use non web safe fonts in all modern browsers. CSS3 opacity, border radius, box shadow. CSS3 gradients. Add cool gradient effects using native CSS3 (no images). CSS3 navigation menu. Create awesome menus without using JavaScript or images. CSS3 animations and transitions. Including support for 2D and 3D transforms! Features for advanced users: Login Tools/Page Password Protection. Built-in Content Management System with many plug-ins (guestbook, faq, downloads, photo album etc). Add custom HTML code with the HTML tools. JavaScript Events: Show/hide objects (with animation), timers, move objects, change styles etc. Layers: Sticky layer, Docking layer, Floating layer, Modal layer, Anchored layer, Strechable layer and more! jQuery Theme Manager, create your own themes for the built-in jQuery UI widgets. Style Manager (global styling, H1, H2, H3 etc). Master Frames and Master Objects: reuse common element in your website. and much more! WYSIWYG Web Builder 20.2.2 changelog: Improved: Minor change in HTML formatting of the Overlay Menu. Fixed: Issue with aspect ratio of HTML Video. Download: WYSIWYG Web Builder 64-bit | 30.1 MB (Shareware) Download: WYSIWYG Web Builder 32-bit | 28.0 MB Screenshot: >> Click here << Link: Home Page | Templates | Free extras/addons | Changelog Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Collaborator
      Mighty Pen went up a rank
      Collaborator
    • Week One Done
      emptyother earned a badge
      Week One Done
    • Week One Done
      DarkWun earned a badge
      Week One Done
    • Very Popular
      valkyr09 earned a badge
      Very Popular
    • Week One Done
      suprememobiles earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      568
    2. 2
      +FloatingFatMan
      189
    3. 3
      ATLien_0
      179
    4. 4
      Skyfrog
      112
    5. 5
      Xenon
      110
  • Tell a friend

    Love Neowin? Tell a friend!