我正在尝试使用Python自动下载sharepoint office 365文件。 我找到了以下客户端 https://github.com/vgrem/Office365-REST-Python-Client
但是我的要求是使用一个使用clientid和secret来获取acesses令牌然后下载文件的简单客户端。
如果您了解OAuth2,那么此流程称为客户端凭据授予。 但是当我通过示例部分中的Python客户端时,我看到了
settings.py
settings = {
'url': 'https://mediadev20.sharepoint.com/sites/contoso',
'username': 'mattim@mediadev20.onmicrosoft.com',
'password': 'P@ssw0rd'
}
app_settings = {
'url': 'https://mediadev20.sharepoint.com/sites/contoso',
'client_id': '99cbd1a9-ec8d-4e89-96c3-699993089d65',
'client_secret': 'VMdT8mOurDhsvG8yDnP3yFg',
'redirect_url': 'https://github.com/vgrem/Office365-REST-Python-Client/'
}
我的问题是我不知道redirect_url是什么,因为我的是一个独立的客户端,并且没有redirect_url。
有没有人在没有使用redirect_url的情况下有关于如何使用该库的示例代码或指针?
答案 0 :(得分:1)
对于该方案,您可以考虑通过SharePoint App-Only流程授予访问权限。在最新版本的库中,引入了对 SharePoint App-Only 访问的支持:
AuthenticationContext.acquire_token_for_app(client_id,client_secret)
关于如何使用SharePoint App-Only授予访问权限,请关注this article,下面我将总结要点:
示例:
app_settings = {
'url': 'https://contoso.sharepoint.com/',
'client_id': '8efc226b-ba3b-4def-a195-4acdb8d20ca9',
'client_secret': '',
}
context_auth = AuthenticationContext(url=app_settings['url'])
context_auth.acquire_token_for_app(client_id=app_settings['client_id'], client_secret=app_settings['client_secret'])
ctx = ClientContext(app_settings['url'], context_auth)
web = ctx.web
ctx.load(web)
ctx.execute_query()
print("Web site title: {0}".format(web.properties['Title']))