无法使用 python 访问共享点列表

Par*_*ras 3 python sharepoint urllib2

我正在使用 python-sharepoint 从我的 sharepoint 帐户访问数据。但我总是得到一个urllib2.HTTPError: HTTP Error 403: Forbidden错误。我正在关注这个 github 链接。这是我的代码:

from sharepoint import SharePointSite, basic_auth_opener
server_url = 'https://myServerUrl.sharepoint.com/'
site_url = server_url + 'sites/test'
username = 'myUsername.onmicrosoft.com'
password = 'myPassword'

opener = basic_auth_opener(server_url, username, password)
site = SharePointSite(site_url, opener)
for sp_list in site.lists:
    print (sp_list)
Run Code Online (Sandbox Code Playgroud)

我还尝试将 urllib2 开瓶器创建为:

from sharepoint import SharePointSite
from ntlm import HTTPNtlmAuthHandler
import urllib2

password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, server_url, username, password)
auth_handler = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(password_manager)
opener = urllib2.build_opener(auth_handler)

site = SharePointSite(site_url, opener)
for sp_list in site.lists:
    print (sp_list)
Run Code Online (Sandbox Code Playgroud)

但它再次给出了同样的错误。任何解决方案将不胜感激。

Vad*_*hev 5

无论是基本也不NTLM身份验证方法不是在SharePoint Online中,这使得支持蟒蛇SharePoint的不是这里的最佳选择。

相反,我建议尝试一下支持 Office 365/SharePoint Online 的Office365-REST-Python-Client

这是获取站点中所有列表并打印其标题的类似示例

ctx_auth = AuthenticationContext(url='https://contoso.sharepoint.com')
if ctx_auth.acquire_token_for_user(username='jdoe@contoso.onmicrosoft.com'],
                                   password='--password--'):

    ctx = ClientContext(settings['url'], ctx_auth)
    lists = ctx.web.lists
    ctx.load(lists)
    ctx.execute_query()
    for l in lists:
        print(l.properties["Title"])
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很棒的图书馆。它需要更多的认可,谢谢你的帮助。 (2认同)