2008-10-20 21 views

Respuesta

10

sospecho que ya fue contestada esta pregunta la biblioteca SUDS se ha actualizado para cuidar de la propia autenticación requerida Después de saltar a través de varios aros, he encontrado que esto hacer el truco:


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) 

+0

Desafortunadamente, la espuma no parece funcionar bien con python3 y suds-jerko puede engatusarse pero requiere la biblioteca python-ntlm que no se instalará en Windows. – Basic

3

SharePoint expone varios servicios web que puede usar para consultar y actualizar datos.

No estoy seguro de qué kit de herramientas de servicio web hay para Python, pero deberían poder construir proxys para estos servicios sin ningún problema.

Este artículo debería darle suficiente información para comenzar.

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

+0

Desafortunadamente, pitón No juega bien con la autenticación NTLM (¡y menos aún con Kerberos) por lo que la parte de jabón es fácil, pero la autenticación es problemática – Basic

4

SOAP con Python es bastante fácil. Here's a tutorial de Dive Into Python.

+1

Esto es ahora muy de moda y la SOAPpy la biblioteca que usa está obsoleta – Basic

9

Para obtener el 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 

principal (media) problema: utiliza el servidor de SharePoint-un-Auth NTLM [:-(] así que tuve que usar el NTLM Auth-Proxy

para Rob y Enzondio:!. Gracias por sus consejos

Cuestiones relacionadas