【问题标题】:How to have multiple scopes with Google Calendar + Google Drive如何使用 Google Calendar + Google Drive 拥有多个范围
【发布时间】:2017-03-02 04:51:46
【问题描述】:
我是 Google API 的新手,想知道如何在同一个文件中访问 2 个不同的 API。
我有
SCOPES = 'https://www.googleapis.com/auth/calendar'
但我也想要
SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
可以从同一个文件中访问。有谁知道该怎么做?
谢谢!
【问题讨论】:
标签:
python
google-api
google-calendar-api
google-oauth
google-drive-realtime-api
【解决方案1】:
当您进行身份验证时,只需添加两个范围。系统将提示用户授予您对两者的访问权限。
SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/calendar'
你可能需要在它们之间加一个逗号,我不确定这取决于库
现在我不是 python 开发人员,但是大多数 Google 客户端库都是相同的。假设您正在使用它,您将需要同时创建日历服务和驱动器服务。您使用从上面获得的相同凭据创建它们。从here 窃取的代码。
serviceDrive = discovery.build('drive', 'v3', http=http)
serviceCal = discovery.build('calendar', 'v3', http=http)
当您需要访问日历时,您使用日历服务;当您需要访问驱动器时,您使用驱动器服务。
【解决方案2】:
将范围添加到列表对象中。
例子:
SCOPES = ['https://www.googleapis.com/auth/calendar',
'https://www.googleapis.com/auth/drive.metadata.readonly']