【发布时间】:2021-10-21 18:53:06
【问题描述】:
我想从我的服务器应用程序访问课堂记录。
我创建了一个服务帐户,但我无法从我的 google 帐户创建的课堂中获取记录。
我如何获得访问权限?谢谢
【问题讨论】:
我想从我的服务器应用程序访问课堂记录。
我创建了一个服务帐户,但我无法从我的 google 帐户创建的课堂中获取记录。
我如何获得访问权限?谢谢
【问题讨论】:
向服务帐户授予域范围权限的主要目的是让这些帐户能够代表您域中的用户访问数据,否则服务帐户 就像另一个帐户一样,它正在尝试从“课堂”访问自己的数据。
因此,当您创建此 服务帐户 以结束在您的域中模拟其他用户时,它将能够访问该用户可以从 Classroom 中的记录。
至于这样做,您可能会受益于查看这份广泛的指南here。
您可以看到,这样做需要以下几点:
Credentials 对象并包含您的操作所需的范围:from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/classroom.courses.readonly', 'https://www.googleapis.com/auth/classroom.announcements']
SERVICE_ACCOUNT_FILE = '/path/to/service.json'
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
delegated_credentials = credentials.with_subject('user@example.org')
请注意,您将能够访问该用户可以访问的资源。因此,例如,如果您想访问一些只有课程创建者或域管理员才能访问的资源,您将必须分别模拟课程创建者或管理员。
【讨论】: