是否有可用于Google Calendar API的管理员帐户?

时间:2019-01-08 03:16:50

标签: python google-api google-calendar-api

我使用此Google日历api代码进行开发(您可以找到代码here):

from __future__ import print_function
import datetime
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

# If modifying these scopes, delete the file token.json.
SCOPES = 'https://www.googleapis.com/auth/calendar.readonly'

def main():
    """Shows basic usage of the Google Calendar API.
    Prints the start and name of the next 10 events on the user's calendar.
    """
    # The file token.json stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    store = file.Storage('token.json')
    creds = store.get()
    if not creds or creds.invalid:
        flow = client.flow_from_clientsecrets('./credentials.json', SCOPES)
        creds = tools.run_flow(flow, store)
    service = build('calendar', 'v3', http=creds.authorize(Http()))

    # Call the Calendar API
    now = datetime.datetime.utcnow().isoformat() + 'Z' # 'Z' indicates UTC time
    print('Getting the upcoming 10 events')
    events_result = service.events().list(calendarId='primary', timeMin=now,
                                        maxResults=10, singleEvents=True,
                                        orderBy='startTime').execute()
    events_result = service.events().list(calendarId='primary',timeMin=now,).execute()
    events = events_result.get('items', [])
    if not events:
        print('No upcoming events found.')
    for event in events:
        start = event['start'].get('dateTime', event['start'].get('date'))
        print(start, event['summary'])

if __name__ == '__main__':
    main()

使用日历API进行开发时,第一次单击页面的权限按钮时,pycharm控制台可以返回输出。

是否存在一个可以控制100多人帐户的管理员帐户?例如我们公司有100个人,如果我想获得100个人的数据,是否需要获得100个人的帐户信息(Gmail帐户和密码)和凭据.json文件?

当我第一次为每个人的certificate.json文件运行代码时,我需要单击100次“承认”以容纳100个人,这不好。我希望拥有管理员权限以简化此操作。

是否有一个可以控制这100个人的管理员帐户?我需要下载100个人的certificate.json文件吗?

我应该单击哪个来执行下一步,如何获取每个人的json文件?

2 个答案:

答案 0 :(得分:1)

是的,这称为G Suite Domain-Wide Delegation。直接来自链接指南:

  

在企业应用程序中,您可能需要以编程方式访问用户的数据,而无需他们的任何手动授权。在G Suite域中,域管理员可以授予第三方应用程序对其用户数据具有域范围的访问权限-这称为域范围的授权。为了以这种方式委派权限,域管理员可以将服务帐户与OAuth 2.0结合使用。

答案 1 :(得分:1)

这是管理员信息page

使用管理员帐户登录名。

下载管理员的凭据。json。

使用管理员帐户添加这样的Gmail地址,输入fmail地址: enter image description here

然后单击Settings and sharing,然后您将找到calendarId。 enter image description here

如果您的公司有20个人,请重复此操作20次,然后将20个人的calendarId放入列表并循环。