2014-01-06 200 views
9

我在我的本地虛擬機在SharePoint 2013以下網站:如何通過Python中的REST API訪問SharePoint站點?

http://win-5a8pp4v402g/sharepoint_test/site_1/

當我訪問該從瀏覽器,它會提示我的用戶名和密碼,然後正常工作。不過,我試圖在Python中使用REST API來做同樣的事情。我現在用的是請求庫,這是我做了什麼:

import requests 
from requests.auth import HTTPBasicAuth 


USERNAME = "Administrator" 

PASSWORD = "password" 

response = requests.get("http://win-5a8pp4v402g/sharepoint_test/site_1/", auth=HTTPBasicAuth(USERNAME, PASSWORD)) 

print response.status_code 

不過,我得到一個401我不明白。我錯過了什麼?

注:我跟着這篇文章http://tech.bool.se/using-python-to-request-data-from-sharepoint-via-rest/

回答

20

您的SharePoint網站可能使用不同的身份驗證方案。您可以通過檢查Firebug或Chrome開發人員工具中的網絡流量來檢查此情況。

幸運的是,請求庫支持多種身份驗證選項:http://docs.python-requests.org/en/latest/user/authentication/

富勒例如,我需要接入網絡的一個使用NTLM身份驗證。安裝requests-ntml插件後,我能夠訪問使用類似的代碼的網站是:

import requests 
from requests_ntlm import HttpNtlmAuth 

requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('DOMAIN\\USERNAME','PASSWORD')) 
+1

是的。使用'HttpNtlmAuth'工作。 :) –

0

401響應是authentication錯誤...

這使得你的三個變量之一是不正確的:URL,用戶通過Requests Authentication Docs

您的網址看起來不完整。

+0

是的我知道它的訪問被拒絕的錯誤。點是我已經驗證了網址,用戶名和密碼是正確的。 –

+0

檢查你的網址。 –

+0

這就好。它是一個共享點。我在/ etc/hosts文件中添加了該條目以指向本地VM的IP。 無論如何,爲了清晰起見,我已經更新了網址。 –

0

您也可以從PyPI中使用sharepoint模塊,自我描述爲「模塊和命令行實用程序來獲取數據出來的SharePoint「