Google 教室 API - 权限被拒绝
Google Classroom API - PERMISSION DENIED
这是我第一次接触 Google 课堂 API。我正在尝试创建一个列出每门课程所有者电子邮件的脚本。
我想通过修改 Quickstart "listCourses()" 示例来实现,但是在尝试使用 Classroom.UserProfiles.get(); 获取用户配置文件时;我收到 403 PERMISSION_DENIED 错误。
我检查过列出的每个范围都已包括在内:
"oauthScopes": [
"https://www.googleapis.com/auth/classroom.courses",
"https://www.googleapis.com/auth/classroom.profile.emails",
"https://www.googleapis.com/auth/classroom.profile.photos",
"https://www.googleapis.com/auth/classroom.rosters",
"https://www.googleapis.com/auth/classroom.rosters.readonly"
]
并且用户 运行 脚本在 GSuite 上注册为超级管理员。
数据访问已被检查为允许共享数据。
这是我正在使用的代码
function listCourses() {
var response = Classroom.Courses.list();
var courses = response.courses;
if (courses && courses.length > 0) {
for (i = 0; i < courses.length; i++) {
var course = courses[i];
var owner = Classroom.UserProfiles.get(course.ownerId).emailAddress;
Logger.log('%s (%s) - o: %s - stat: %s', course.name, course.id, owner, course.courseState);
}
} else {
Logger.log('No courses found.');
}
}
据我所知,这应该会给我课程列表、他们的 ID 号、所有者的电子邮件和课程状态。
但是执行在 UserProfile.get() 行停止,程序停止并出现 403 错误。
有谁知道问题出在哪里以及如何解决?非常感谢。
发布文档。
可能发生的情况是,一位或多位 class 所有者可能不在域中。如果是这种情况,请尝试使用 Classroom.UserProfiles.get() 获取他们的信息。您应该查看 this documentation on this particular issue and test out the get method here 以查看特定用户是否失败。
显然是这样,OP 确认确实从域中删除了一些用户。
这是我第一次接触 Google 课堂 API。我正在尝试创建一个列出每门课程所有者电子邮件的脚本。
我想通过修改 Quickstart "listCourses()" 示例来实现,但是在尝试使用 Classroom.UserProfiles.get(); 获取用户配置文件时;我收到 403 PERMISSION_DENIED 错误。
我检查过列出的每个范围都已包括在内:
"oauthScopes": [
"https://www.googleapis.com/auth/classroom.courses",
"https://www.googleapis.com/auth/classroom.profile.emails",
"https://www.googleapis.com/auth/classroom.profile.photos",
"https://www.googleapis.com/auth/classroom.rosters",
"https://www.googleapis.com/auth/classroom.rosters.readonly"
]
并且用户 运行 脚本在 GSuite 上注册为超级管理员。
数据访问已被检查为允许共享数据。
这是我正在使用的代码
function listCourses() {
var response = Classroom.Courses.list();
var courses = response.courses;
if (courses && courses.length > 0) {
for (i = 0; i < courses.length; i++) {
var course = courses[i];
var owner = Classroom.UserProfiles.get(course.ownerId).emailAddress;
Logger.log('%s (%s) - o: %s - stat: %s', course.name, course.id, owner, course.courseState);
}
} else {
Logger.log('No courses found.');
}
}
据我所知,这应该会给我课程列表、他们的 ID 号、所有者的电子邮件和课程状态。
但是执行在 UserProfile.get() 行停止,程序停止并出现 403 错误。
有谁知道问题出在哪里以及如何解决?非常感谢。
发布文档。
可能发生的情况是,一位或多位 class 所有者可能不在域中。如果是这种情况,请尝试使用 Classroom.UserProfiles.get() 获取他们的信息。您应该查看 this documentation on this particular issue and test out the get method here 以查看特定用户是否失败。
显然是这样,OP 确认确实从域中删除了一些用户。