繁体   English   中英

Google课堂API - 允许拒绝

[英]Google Classroom API - PERMISSION DENIED

这是我第一次使用Google Classroom 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上注册为Super Admin。

已检查数据访问,以允许共享数据。

这是我正在使用的代码

        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.');
            }  

        }

据我所知,这应该是我的课程列表,他们的身份证号码,所有者的电子邮件和课程状态。

但是执行在UserProfile.get()行上停止,程序因403错误而停止。

有谁知道问题是什么以及如何解决? 非常感谢你。

发布文档。

可能发生的事情是,一个或多个类所有者可能在域外。 如果是这种情况,尝试使用Classroom.UserProfiles.get()获取其信息。 您应该查看有关此特定问题的此文档 ,并在此处测试get方法以查看特定用户是否失败。

显然情况确实如此,OP确认某些用户确实已从域中删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM