Цель этого кода - использовать Python для чтения файла Excel из папки SharePoint с помощью модуля Office365-REST- Python -Client 2.1.7.post1. Я работал с нашей группой ИТ-безопасности, чтобы получить коды ClientID и Client Secret для токена авторизации, и убедился, что они работают. Но всякий раз, когда я пытаюсь получить доступ к заданному файлу Excel в папке библиотеки документов, я получаю ошибку TypeError: 'NoneType' object is not subscriptable
.
Вот код:
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File
credentials = {
'credurl': 'https://portal.[COMPANYNAME].com/sites/documentlibrary',
'client_id': '[CLIENT ID CODE]',
'client_secret': '[CLIENT SECRET]',
}
relative_url = '/sites/documentlibrary/testfolder/Test-2020-05-01.xlsx'
context_auth = AuthenticationContext(url=credentials['credurl'])
context_auth.acquire_token_for_app(client_id=credentials['client_id'], client_secret=credentials['client_secret'])
ctx = ClientContext(credentials['credurl'], context_auth)
filename = 'output-2020-05-02.xlsx'
with open(filename, 'wb') as output_file:
response = File.open_binary(ctx, relative_url)
output_file.write(response.content)
Код ошибки в строке response = File.open_binary(ctx, relative_url).
Вот полная ошибка:
Traceback (most recent call last):
File "[NETWORK PATH]/Post-Test.py", line 46, in <module>
response = File.open_binary(ctx=ctx, server_relative_url=relative_url)
File "C:\Program Files\Python38\lib\site-packages\office365\sharepoint\file.py", line 201, in open_binary
response = ctx.execute_request_direct(request)
File "C:\Program Files\Python38\lib\site-packages\office365\runtime\client_runtime_context.py", line 34, in execute_request_direct
return self.pending_request.execute_request_direct(request)
File "C:\Program Files\Python38\lib\site-packages\office365\runtime\client_request.py", line 41, in execute_request_direct
self.context.authenticate_request(request_options)
File "C:\Program Files\Python38\lib\site-packages\office365\runtime\client_runtime_context.py", line 15, in authenticate_request
self.__auth_context.authenticate_request(request)
File "C:\Program Files\Python38\lib\site-packages\office365\runtime\auth\authentication_context.py", line 37, in authenticate_request
request_options.set_header('Authorization', self.provider.get_authorization_header())
File "C:\Program Files\Python38\lib\site-packages\office365\runtime\auth\acs_token_provider.py", line 76, in get_authorization_header
return 'Bearer {0}'.format(self.access_token["access_token"])
TypeError: 'NoneType' object is not subscriptable
Любая помощь приветствуется!