Невозможно получить доступ к спискам sharepoint, используя python - PullRequest
0 голосов
/ 02 июля 2018

Я использую 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)

Я также пытался создать программу открывания 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)

Но опять же это выдает ту же ошибку. Любое решение будет оценено.

1 Ответ

0 голосов
/ 04 июля 2018

Ни Базовая , ни NTLM методы аутентификации не поддерживаются в SharePoint Online, что делает python-sharepoint не лучшим выбором здесь.

Вместо этого я бы рекомендовал попробовать Office365-REST-Python-Client , который поддерживает Office 365 / SharePoint Online.

Вот аналогичный пример получения всех списков на сайте и печати его заголовка

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"])
...