您如何确定onedrive-sdk-python商业版onedrive是否已通过身份验证?

时间:2019-10-18 16:05:42

标签: python-3.x azure onedrive

我是牧师,每周我都会通过gmail通过电子邮件将指向简报和公告的链接以及OneDrive上的其他一些项目通过电子邮件发送给教堂中的一对夫妇。我宁愿使用Python自动执行链接生成和电子邮件发送。

问题是,当我运行Microsoft提供的代码以使Python可以访问OneDrive时,我不知道我的应用程序是否已通过身份验证,或者我不知道该如何使用经过身份验证的事实(如果实际上)我是

我从微软的github项目onedrive-sdk-python的OneDrive for Business部分复制了代码(我正在使用OneDrive for Business-我的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)

我希望能被告知下一步该怎么做,但是自述文件仅包含一个示例。我是否将身份验证部分永久保留在代码中?我是否需要将较长的“ code =”字符串放在某个地方?是否应该告诉我登录?我通过身份验证了吗?

0 个答案:

没有答案