使用 CalDAV的规范示例始终使用用户名/密码身份验证。但是 Nextcloud 支持 OAuth2,因此我想通过 oauth 使用 CalDAV。
我已经对 Google 日历 API 做了同样的事情,但只是修改了oauth2client
Google 提供的示例:
client_secrets = 'client_secrets.json'
flow = client.flow_from_clientsecrets(client_secrets, scope="",
message=tools.message_if_missing(client_secrets))
storage = file.Storage('calendar_credentials.dat')
credentials = storage.get()
if credentials is None or credentials.invalid:
credentials = tools.run_flow(flow, storage)
http = credentials.authorize(http=build_http())
build_http()
用一个实例替换是caldav.DAVClient
行不通的。内部request()
API 完全不同,调用 caldav 客户端的任何方法都会在被authorize()
. 所以,问题是:如何caldav.DAVClient
集成oauth2client
?
此外,关于在 nextCloud 中使用 OAuth 的文档也很少。我找到了这个帖子,但仍然不清楚去哪里。