10

I want to use Sharepoint with python (C-Python)

Has anyone tried this before ?

Blauohr
  • 5,985
  • 2
  • 25
  • 31

4 Answers4

10

I suspect that since this question was answered the SUDS library has been updated to take care of the required authentication itself. After jumping through various hoops, I found this to do the trick:


from suds import WebFault
from suds.client import *
from suds.transport.https import WindowsHttpAuthenticated


user = r'SERVER\user'
password = "yourpassword"
url = "http://sharepointserver/_vti_bin/SiteData.asmx?WSDL"


ntlm = WindowsHttpAuthenticated(username = user, password = password)
client = Client(url, transport=ntlm)

Constantin
  • 27,478
  • 10
  • 60
  • 79
somewhatoff
  • 971
  • 1
  • 11
  • 25
  • Unfortunately, suds doesn't seem to play well with python3 and suds-jerko can be cajoled into it but requires the python-ntlm library which won't install on Windows. – Basic Feb 12 '15 at 15:33
9

To get the wsdl :

import sys

# we use suds -> https://fedorahosted.org/suds
from suds import WebFault
from suds.client import *
import urllib2

# my 2 url conf
# url_sharepoint,url_NTLM_authproxy 
import myconfig as my 

# build url
wsdl = '_vti_bin/SiteData.asmx?WSDL'
url = '/'.join([my.url_sharepoint,wsdl])


# we need a NTLM_auth_Proxy -> http://ntlmaps.sourceforge.net/
# follow instruction and get proxy running
proxy_handler = urllib2.ProxyHandler({'http': my.url_NTLM_authproxy })
opener = urllib2.build_opener(proxy_handler)

client = SoapClient(url, {'opener' : opener})

print client.wsdl

main (mean) problem: the sharepoint-server uses a NTLM-Auth [ :-( ] so i had to use the NTLM-Auth-Proxy

To Rob and Enzondio : THANKS for your hints !

Blauohr
  • 5,985
  • 2
  • 25
  • 31
4

SOAP with Python is pretty easy. Here's a tutorial from Dive Into Python.

Shadow The GPT Wizard
  • 66,030
  • 26
  • 140
  • 208
enzondio
  • 93
  • 5
3

SharePoint exposes several web services which you can use to query and update data.

I'm not sure what web service toolkits there are for Python but they should be able to build proxies for these services without any issues.

This article should give you enough information to get started.

http://www.developer.com/tech/article.php/3104621

Rob Windsor
  • 6,744
  • 1
  • 21
  • 26
  • Unfortunately, python does not play well with NTLM authentication (and even less so with Kerberos!) so the SOAP part is easy but the auth is problematic – Basic Feb 12 '15 at 15:36