【问题标题】:Google Classroom API - PERMISSION DENIEDGoogle Classroom API - 权限被拒绝
【发布时间】:2019-12-31 17:57:53
【问题描述】:

这是我第一次使用 Google Classroom API。我正在尝试创建一个脚本,列出每门课程所有者的电子邮件。

我想通过修改快速入门“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 错误。

有谁知道问题出在哪里以及如何解决?非常感谢。

【问题讨论】:

  • 我测试了你的代码,它对我有用,我认为可能发生的情况是一个或多个类所有者可能在域之外。如果是这种情况,请尝试通过Classroom.UserProfiles.get() 获取他们的信息。您应该查看 this documentation 关于此特定问题的信息并测试 get 方法 here 以查看特定用户是否失败。
  • 非常感谢!感谢您的回复,我意识到确实只有某些用户 ID 会使脚本停止。我怀疑之前的管理员删除了一些用户,而没有先将他们的课程重新分配给新老师,这就是导致问题的原因。非常感谢! :)
  • 没问题,我会发布文档的答案!

标签: google-apps-script google-api google-oauth google-classroom


【解决方案1】:

发布文档。

可能发生的情况是一个或多个类所有者可能不在域中。如果是这种情况,请尝试使用 Classroom.UserProfiles.get() 获取他们的信息。您应该查看 this documentation 关于这个特定问题并测试 get 方法 here 以查看特定用户是否失败。

显然是这样,OP 确认某些用户确实已从域中删除。

【讨论】:

    猜你喜欢
    • 2022-08-03
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 2022-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    相关资源
    最近更新 更多