Я пытаюсь прочитать/загрузить файл Excel из общей папки в SharePoint моей организации. На данный момент у меня есть приложение Azure AD, которое я пытаюсь использовать для аутентификации доступа. Я использую найденный здесь код для проверки соединения, но все равно получаю следующее сообщение об ошибке:
Нет {'token_type': 'Носитель', 'expires_in': 3599, 'ext_expires_in': 3599, 'access_token': 'retrived_token'} Не удалось прочитать файл. Код состояния: 400 Мое приложение имеет следующие права доступа:

Я также попросил администратора офиса утвердить разрешение по этой ссылке: https://login.microsoftonline.com/{tena ... id={CLIENT ID HERE}, которое я видел в другом сообщении, которое помогло OP , и он одобрил.
Вот мой код:
запросы на импорт импортировать мсал импорт ио импортировать панд как pd # Параметры приложения Azure client_id = 'xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' client_secret = 'мойсекрет' авторитет = 'https://login.microsoftonline.com/tenant_id' # Параметры SharePoint Sharepoint_site_url = 'https://myorganization.sharepoint.com' excel_file_path = '/teams/group/Shared Documents/folder1/folder2/folder3/myexcelfile.xlsx' # Создайте экземпляр ConfidentialClientApplication для учетных данных. приложение = msal.ConfidentialClientApplication(client_id, Authority=authority, client_credential=client_secret) # Получите токен доступа, используя учетные данные клиента result = app.acquire_token_silent(scopes=['https://graph.microsoft.com/.default'], account=None) печать (результат) если нет результата: # Если токен не найден в кеше, приобретите новый результат = app.acquire_token_for_client(scopes=['https://graph.microsoft.com/.default']) # Распечатайте результат, чтобы проверить его содержимое печать (результат) если в результате 'access_token': # Успешный access_token = результат['access_token'] # Вызовите Microsoft Graph, чтобы прочитать файл Excel graph_url = f'https://graph.microsoft.com/v1.0/sites/ ... oup/Shared Documents/folder1/folder2/folder3/myexcelfile.xlsx: /содержание' заголовки = {'Авторизация': f'Носитель {access_token}'} ответ = запросы.get(graph_url, заголовки = заголовки) если ответ.код_статуса == 200: # Успешный excel_data = io.BytesIO(response.content) df = pd.read_excel(excel_data) печать(df.head()) еще: print(f"Не удалось прочитать файл. Код состояния: {response.status_code}") еще: print("Не удалось получить токен доступа.")