Solución:
Es posible que su sitio de SharePoint use un esquema de autenticación diferente. Puede verificar esto inspeccionando el tráfico de red en Firebug o las Herramientas para desarrolladores de Chrome.
Afortunadamente, la biblioteca de solicitudes admite muchas opciones de autenticación: http://docs.python-requests.org/en/latest/user/authentication/
Por ejemplo, una de las redes a las que necesitaba acceder usa autenticación NTLM. Después de instalar el complemento request-ntml, pude acceder al sitio usando un código similar a este:
import requests
from requests_ntlm import HttpNtlmAuth
requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('DOMAIN\USERNAME','PASSWORD'))
A continuación, se muestran ejemplos de llamadas a la API de REST de SharePoint 2016 desde Python para crear un sitio.
import requests,json,urllib
from requests_ntlm import HttpNtlmAuth
root_url = "https://sharepoint.mycompany.com"
headers = {'accept': "application/json;odata=verbose","content-type": "application/json;odata=verbose"}
##"DOMAINusername",password
auth = HttpNtlmAuth("MYCOMPANY"+"\"+"UserName",'Password')
def getToken():
contextinfo_api = root_url+"/_api/contextinfo"
response = requests.post(contextinfo_api, auth=auth,headers=headers)
response = json.loads(response.text)
digest_value = response['d']['GetContextWebInformation']['FormDigestValue']
return digest_value
def createSite(title,url,desc):
create_api = root_url+"/_api/web/webinfos/add"
payload = {'parameters': {
'__metadata': {'type': 'SP.WebInfoCreationInformation' },
'Url': url,
'Title': title,
'Description': desc,
'Language':1033,
'WebTemplate':'STS#0',
'UseUniquePermissions':True}
}
response = requests.post(create_api, auth=auth,headers=headers,data=json.dumps(payload))
return json.loads(response.text)
headers['X-RequestDigest']=getToken()
print createSite("Human Resources","hr","Sample Description")
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)