使用G-Suite全域委派服务帐户限制Calendar API访问,仅访问忙碌API

时间:2019-05-30 10:28:15

标签: python google-app-engine google-calendar-api gsuite

我正在一个项目中,该项目将使用带有服务帐户的G Suite域范围委派来通过日历API获取组织的会议室及其可用性。 该API可以正常工作,但是符合忙/闲API要求的范围:

calendar

calendar.readonly

我还可以通过服务帐户获取所有用户的日历信息(例如事件列表)。 出于安全原因,我们不允许获取用户日历,而只能访问房间可用性。

有没有办法我只能获取房间的忙/闲状态,而不能获取用户的事件列表或任何其他类型的个人信息?

我试图创建一个只能访问域中资源的用户,并尝试使用create_delegated方法来模拟该用户,该用户不起作用,并且仍然可以访问日历。

SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']
SERVICE_ACCOUNT_FILE = 'accountfile'
creds = ServiceAccountCredentials.from_json_keyfile_name(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
creds = creds.create_delegated("some user account")

service = build('calendar', 'v3', credentials=creds)
results = service.freebusy().query(body=body).execute()

results = service.events().list(calendarId=calendarId, timeZone=timezone, timeMin=timeMin, timeMax=timeMax, singleEvents=True).execute()

0 个答案:

没有答案