#python #sharepoint #shareplum
#python #sharepoint #shareplum
Вопрос:
Я хочу автоматизировать загрузку zip-файла на сайте sharepoint другой организации, которым они поделились с моей организацией, пригласив нас в качестве гостя, используя общий адрес электронной почты компании, чтобы мы могли получить доступ к файлам. Чтобы получить доступ, я предоставляю адрес электронной почты компании в качестве имени пользователя и связанный с ним пароль AD, который проверяет подлинность доступа через нашу учетную запись организации MS 365.
Это отлично работает вручную, но при попытке сделать это через shareplum я получаю ошибку учетных данных.
Вот мой код:
from shareplum import Site
from shareplum import Office365
from shareplum.site import Version
sharepointUsername = 'elvis.presley@suspiciousminds.org'
sharepointPassword = 'oogabooga123'
sharepointSite = 'https://abc.sharepoint.com/sites/ClientLogin/Shared Documents/Graceland/'
authcookie = Office365(website, username=sharepointUsername,
password=sharepointPassword).GetCookies()
site = Site(sharepointSite, version=Version.v365, authcookie=authcookie)
И вот ошибка:
Traceback (most recent call last):
File "<string>", line 11, in <module>
File "C:arcgispro-py3-clone2libsite-packagesshareplumoffice365.py", line 88, in get_cookies
sectoken = self.get_security_token(self.username, self.password)
File "C:arcgispro-py3-clone2libsite-packagesshareplumoffice365.py", line 80, in get_security_token
raise Exception('Error authenticating against Office 365. Error from Office 365:', message[0].text)
Exception: ('Error authenticating against Office 365. Error from Office 365:', 'AADSTS50126: Error validating credentials due to invalid username or password.')
Любая подсказка, почему это не работает? Я несколько раз проверял учетные данные, используя их для входа в систему вручную, и это работает каждый раз (очевидно, в примере нет реального имени пользователя / пароля)?
Комментарии:
1. Привет, не могли бы вы поделиться содержимым
website
переменной?? Это должен бытьhttps://abc.sharepoint.com/
не весь URL какsharepointSite
. Также измените свойsharepointSite
assharepointSite = 'https://abc.sharepoint.com/sites/ClientLogin/
. Чтобы получить доступ к папке, которую вы должны выполнить после входа в систему: `папка = сайт. Папка (‘Общие документы / Graceland /’)` и для получения файлаfolder.get_file('my_file.zip')
иfolder.check_out('my_file.zip')
Ответ №1:
Вы не одиноки, похоже, это распространенная проблема shareplum
за последние 6 месяцев. На GitHub есть открытая проблема. Владелец кода знает и испытывает трудности с отладкой проблемы.
Проблема с GitHub: https://github.com/jasonrollins/shareplum/issues/84
Я рекомендую тесно сотрудничать с владельцем кода для отладки и устранения проблемы на GitHub или вообще использовать другую библиотеку / решение. Другой пользователь прокомментировал проблему и сослался на решение, которое использует requests
библиотеку для извлечения файла, который может оказаться полезным: https://github.com/jasonrollins/shareplum/issues/84#issuecomment-627986466 .