Как узнать, аутентифицирован ли onedrive для бизнеса onedrive-sdk-python? - PullRequest
1 голос
/ 18 октября 2019

Я пастор, и каждую неделю я отправляю по электронной почте (через gmail) ссылку на PowerPoint, бюллетень и несколько других материалов на OneDrive нескольким людям в церкви. Я бы предпочел автоматизировать создание ссылок и отправку электронной почты с помощью Python.

Проблема в том, что когда я запускаю код, предоставленный Microsoft, чтобы предоставить Python доступ к моему OneDrive, я не знаю, аутентифицировано ли мое приложение илинет, или как использовать тот факт, что я аутентифицирован, если на самом деле я.

Я скопировал код из раздела OneDrive для бизнеса проекта Microsoft github onedrive-sdk-python (я использую OneDriveдля бизнеса - мой вход в систему onedrive заканчивается на @ onmicrosoft.com) и запустил скрипт. Он развернул вкладку браузера, которая перешла на "http://localhost:8080/?code=AQABAAIA"... и т. Д.

. Вывод был" 127.0.0.1 - - [18 / Oct / 2019 11:42:14] "GET /? Code= ", за которым следует очень длинная строка символов.

Я закомментировал последние несколько строк в приведенном ниже коде, потому что я даже не уверен, как это должно работать или я должен их использовать;Я не знаю, к какому количеству сервисов я имею доступ или что это вообще означает.

from onedrivesdk.helpers import GetAuthCodeServer
from onedrivesdk.helpers.resource_discovery import ResourceDiscoveryRequest

redirect_uri = 'http://localhost:8080'
client_id = '[my actual client id went here]'
client_secret = '[my client secret]'
discovery_uri = 'https://api.office.com/discovery/'
auth_server_url='https://login.microsoftonline.com/common/oauth2/authorize'
auth_token_url='https://login.microsoftonline.com/common/oauth2/token'

http = onedrivesdk.HttpProvider()
auth = onedrivesdk.AuthProvider(http,
                                client_id,
                                auth_server_url=auth_server_url,
                                auth_token_url=auth_token_url)
auth_url = auth.get_auth_url(redirect_uri)
code = GetAuthCodeServer.get_auth_code(auth_url, redirect_uri)
auth.authenticate(code, redirect_uri, client_secret, resource=discovery_uri)

# If you have access to more than one service, you'll need to decide
# which ServiceInfo to use instead of just using the first one, as below.
#service_info = ResourceDiscoveryRequest().get_service_info(auth.access_token)[0]
#auth.redeem_refresh_token(service_info.service_resource_id)
#client = onedrivesdk.OneDriveClient(service_info.service_resource_id + '/_api/v2.0/', auth, http)

Я ожидал, что мне скажут, что делать дальше, но в файле readme есть только однострочные примеры. Всегда ли я сохраняю часть кода для аутентификации? Нужно ли помещать эту длинную строку "code =" куда-нибудь? Должен ли мне быть предложено войти? Я аутентифицирован?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...