Я нашел много примеров использования Office365-REST-Python-Client, однако ни один из них не получает токен доступа правильно. Я зарегистрировал приложение на портале Azure, предоставил ему разрешения API с помощью «Разрешения приложения», создал секрет и использовал client_secret и client_id в моем словаре настроек для использования в приведенном ниже коде.
def read_folder_and_files(context, list_title):
"""Read a folder example"""
list_obj = context.web.lists.get_by_title(list_title)
folder = list_obj.root_folder
context.load(folder)
context.execute_query()
print("List url: {0}".format(folder.properties["ServerRelativeUrl"]))
files = folder.files
context.load(files)
context.execute_query()
for cur_file in files:
print("File name: {0}".format(cur_file.properties["Name"]))
folders = context.web.folders
context.load(folders)
context.execute_query()
for folder in folders:
print("Folder name: {0}".format(folder.properties["Name"]))
if __name__ == '__main__':
ctx_auth = AuthenticationContext(url=settings['url'])
if ctx_auth.acquire_token_for_app(client_id=settings['client_credentials']['client_id'],
client_secret=settings['client_credentials']['client_secret']):
ctx = ClientContext(settings['url'], ctx_auth)
read_folder_and_files(ctx, "Documents")
# read_folder_and_files_alt(ctx, "Documents")
# upload_file_into_library(target_library, name, content)
# download_file(ctx)
else:
print(ctx_auth.get_last_error())
Когда я запускаю приведенный выше код, я получаю следующую ошибку:
File "/usr/local/lib/python3.7/site-packages/office365/runtime/auth/acs_token_provider.py", line 76, in get_authorization_header
return 'Bearer {0}'.format(self.access_token["access_token"])
KeyError: 'access_token'
Моя конечная цель - загрузить файлы в библиотеку документов Sharepoint с метаданными из конвейера данных Python. Sharepoint не размещается локально и входит в наши 365 лицензий.
С уважением
Похоже, эта ошибка может произойти, когда вы не получаете токен доступа.
Я исправил это, отказавшись от клиента и секрета на моем портале Azure и вместо этого сгенерировав их на сайте SharePoint по следующему URL-адресу:
URL: https://[tenant].sharepoint.com/_layouts/15/appregnew.aspx
Чтобы узнать, что вам следует использовать в пространстве [tenant], посмотрите свой URL-адрес SharePoint и выберите текст между «https: //» и «.sharepoint.com». Предполагается, что ваш SharePoint размещен на сервере Microsoft.
Нажмите кнопки создания, используйте соответствующий заголовок и, если вы не знаете, просто введите localhost в качестве домена приложения и URL-адреса перенаправления. (Мой проект - это простой скрипт загрузки). Сделайте копию идентификатора клиента и секрета.
Если вы хотите, чтобы ваше приложение имело полный доступ, перейдите по ссылке:
https://[tenant]-admin.sharepoint.com/_layouts/15/appinv.aspx
Есть еще одна ссылка 'https://[tenant].sharepoint.com/_layouts/15/appinv.aspx', но это не позволит вам подать заявку на получение разрешений на полный контроль.
Вставьте идентификатор клиента в идентификатор приложения, где было бы весело использовать одно и то же имя поля или связать форму вместе? Щелкните поиск и используйте приведенный ниже XML, чтобы предоставить полный контроль.
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="FullControl" />
</AppPermissionRequests>
Нажмите "Создать" и на следующей странице нажмите "Trust". Вам нужно будет войти в систему как владелец сайта с полными правами администратора, чтобы предоставить этот контроль.
Я нашел здесь всю эту информацию, которая дает более подробную информацию, если она вам нужна: https://www.anupams.net/app-only-policy-with-tenant-level-permissions-in-sharepoint-online/
Дополнительная информация: у нашего Sharepoint есть два «сайта», поэтому передача базового URL-адресаhttps://[tenant].sharepoint.com'по умолчанию перенаправил меня на неправильный сайт и означал, что библиотеки документов, которые я искал, не существовали. Чтобы исправить это, используя Office365-REST-Python-Client в словаре настроек, убедитесь, что в настройках URL-адреса указан путь для заполнения вашего сайта следующим образом:
https://[tenant]-admin.sharepoint.com/sites/[site]
Надеюсь, это поможет, эта информация стоила мне слишком много времени!
Яна Дуггар открыто говорила о своих поисках любви. Вот все, что она сказала на эту тему и о своем пятилетнем окне для замужества.
Звезда «Чужестранки» Сэм Хьюэн недавно рассказал, что он возьмет со съемочной площадки, чтобы вспомнить Джейми Фрейзера, роль, которая сделала его звездой.
«She Loves You» была написана за час, записана за день и стала песней The Beatles с одним из лучших исполнений в их карьере.
У Долли Партон и ее бабушки Бесси были особые отношения. Бабушка Партон была очень больна, но это не мешало Долли разыгрывать ее.
Вы можете подумать, что дуб или гикори — прочные породы дерева, но когда речь идет о самой твердой древесине в мире, они даже близко не стоят.
Океан полон красоты, но он также скрывает одних из самых страшных морских существ на планете. Многие из этих животных скрываются глубоко под поверхностью океана, в тёмном, полном давления мире морских глубин.
Если вы сражаетесь с враждебными мобами или готовитесь к PvP-боям, знание лучших чар для мечей в Minecraft может дать вам серьёзное преимущество. Зачарование мечей позволяет наносить больше урона, увеличивать количество выпадающих мобов и продлевать срок службы меча.
Когда говорят о социалистических странах, часто представляют себе полный государственный контроль и отсутствие частной собственности. Но на практике социалистические экономики сильно различаются.
В «Детях» появится громкая камео и несколько разрушительных новостей
Утверждается, что этот RAV4 находится в отличном состоянии и готов к игре в музыкальные стулья.
На кадрах, снятых с дрона, видно, как пожарные изо всех сил пытаются потушить пламя.
«Глаза Ваканды» напрямую связаны с MCU, а также обновления о «Людях Икс '97», «Что, если...», «Сорвиголова» и многом другом.
Ава Гарднер была замужем за Микки Руни и Фрэнком Синтрой, и встречалась с несколькими другими голливудскими звездами. Вот взгляд назад на историю знакомств Авы Гарднер.
Джон Клиз женился на Дженнифер Уэйд в 2012 году. Вот все, что нужно знать о жене Джона Клиза, Дженнифер Уэйд.
Олимпийская чемпионка Эллисон Феликс вышла замуж за своего мужа Кеннета Фергюсона в 2018 году. Вот все, что нужно знать о муже Эллисон Феликс, Кеннете Фергюсоне.
Мена Сувари замужем за своим мужем Майклом Хоупом с 2018 года. Вот все, что нужно знать о муже Мены Сувари.
Это поражает меня Внезапно, как это часто бывает, Это снова и снова на полпути <Нет, не то, что в Тихом океане, ты темно-бордовый, то, что на карнавале> Каждый громкий заголовок…..
В 2022 году, с выпуском GPT-3, навыки письма, кажется, стали менее важными. С помощью ИИ люди с плохим письмом также могут генерировать качественный персонал.
В современном быстро меняющемся и конкурентном мире карьера играет важную роль в личностном росте, финансовой стабильности и общей удовлетворенности жизнью. Однако многие люди оказываются в безжалостном цикле застоя и неудовлетворенности, постепенно угасая в своей профессиональной жизни.
На прошлой неделе я заметил пресс-релиз, разосланный через PressGazette (новостной веб-сайт британских СМИ). В статье сообщалось, что Acast, скандинавская компания по размещению и рекламе подкастов, возглавит консорциум «вероятно, самых влиятельных» издателей подкастинга.