Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I got an email through my blog the other day which asked an interesting question. My reply bounced back, so I figured I'd post it on my blog as well as in the SPServices Discussions (where a question like this belongs, anyway).

Hi Marc, first of all thank you for your contributions to the sharepoint community. [You're welcome!]

I hope you can help me with this. I've been working in a sharepoint portal, it should work as a news site, right Now i'm using spservices to connect to sharepoint, it works great, except in the iPad. I know that there are some compstibility issues but I need to make it work.

Doing some tests I came to the conclusion that the only method in the lists.asmx service that it's not working it's GetListItems, do you have any information about this, or do you know of another way of getting the list ítems using jquery?

I would appreciate any information you could provide me.

Thank you very much.

It makes sense that one should be able to connect to SharePoint's Web Services from any platform, whether iOS on the iPad or Linux or DR-DOS. The biggest trick is always going to be in the authentication.

The simplest approach is to set up the list where you want to use GetListItems for anonymous access. This will ensure that anyone can read the content. If anonymous access isn't appropriate, then you'll need to come up with a mechanism to authenticate your user the same way you would for any other access to SharePoint from an external – meaning non-Windows authentication – source.

Authentication is definitely not my arena, and I find that most of the research I do on the various methods and requirements get me into whirlpools of acronyms and jargon. When it comes to authentication methods, I'd prefer to ask the experts. I recommended SharePoint Overflow, so I figured I'd post it myself!

EDIT: Note that I have no other info than what is in the question. I took it to mean access via app, but that may be incorrect.

share|improve this question

3 Answers 3

GetListItems api is completely works with the query you provide to access the documents.

Ex: <?xml version="1.0" encoding="utf-8"?><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>{4D9AF75B-869E-4A1D-B056-C5771F8722BF}</listName><query><Query><Where><Or><Eq><FieldRef DisplayName="Name" Name="FileLeafRef" /><Value Type="File">Testing.pdf</Value></Eq><Eq><FieldRef DisplayName="URLPath" Name="FileRef" /><Value Type="Lookup">/sites/sample/Public/Testing.pdf</Value></Eq></Or></Where></Query></query></GetListItems></soap:Body></soap:Envelope>

To get documents directly from SharePoint library, there is REST webservice from SharePoint 2010 onwards.

The sample url is "/_vti_bin/listdata.svc". Here you could what is the name that you should use to get details of a particular list/library.

Say, for name of list/library, "Public", it will be "/_vti_bin/listdata.svc/Public".

Try this, you can make the response in different formats too. I mean JSON, XML etc. where in the case of SOAP(List.asmx) requests is not supported.

share|improve this answer

Read this: http://sharepointsemantics.com/2011/07/the-client-side-object-model-help-with-headless-authentication-in-sharepoint-online/ Make sure you read the linked articles written by Chris Johnson, following the information there should solve your authentication woes.

Sidenote, you pretty much HAVE to use forms authentication on the SharePoint end.

share|improve this answer

Is this calls to the web services with jQuery from within an authenticated SharePoint session in Safari? This should work fine, as the creds will be used from the current session, I can only see issues occurring really if the web service is trying to access a List that's in a site that the user doesn't have access to.

If it's a native application that's being written in Xcode then you should be able to handle the authentication challenge in any normal manner. Once you get the challenge, prompt the user for creds, store them, send the Auth, see if you get a success, then attempt the web service call again.

Here's some info on using CFNetwork to call web services, some sample code at the end for handling an auth challenge in the midst of a web service call.

share|improve this answer
    
Huh and duh. See my additional comment above. If it's just access via browser, then you're right and it should have been a much simpler answer from my end. –  Marc D Anderson Jul 18 '11 at 16:57

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.