繁体   English   中英

如何编辑范围? // 谷歌课堂控制谷歌应用脚​​本中学生访问权限范围

[英]How do I edit scopes? // Google Classroom control permission scopes in google apps scripts for student access

我是一名高中老师,正在针对 Google Classroom 编写 Google Apps 脚本。 我想创建一个电子表格,例如我的学生可以使用他们的凭据访问的学生成绩视图。

我已经成功地编写了代码,这样我就可以通过在代码中显式地放置学生的 Id 以我的权限运行它。 此外,我已经成功地用Python编写了代码,我可以其中明确设置学生访问此(且仅此)信息所需的两个范围。 但是,Google Apps Scripts 自动范围生成让我受阻,因为我不能明确要求仅我想要的 2 个范围。

以下是我用 python 编写时起作用的两个作用域:

SCOPES = ['https://www.googleapis.com/auth/classroom.coursework.me.readonly https://www.googleapis.com/auth/classroom.student-submissions.me.readonly']

以下是 Google Apps 脚本自动生成的范围。

5 OAuth Scopes required by the script:
https://www.googleapis.com/auth/classroom.courses
https://www.googleapis.com/auth/classroom.coursework.students
https://www.googleapis.com/auth/classroom.profile.emails
https://www.googleapis.com/auth/classroom.profile.photos
https://www.googleapis.com/auth/classroom.rosters

这是我的代码:

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getMyGrades() {
  var pageToken;
  var studentSubmissionsArray = [];


  //Get Student Submissions for the logged in student that is running this app
  do {
  var optionalArgs = {
    'pageToken': pageToken,
    'userId' : 'me',
  };
  var response = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId='7131560586', courseWorkId='-', optionalArgs);
  var studentSubmissions = response.studentSubmissions;
  if (studentSubmissions && studentSubmissions.length > 0) {
    for (i = 0; i < studentSubmissions.length; i++) {
      var studentSubmission = studentSubmissions[i];
      var courseworkResponse = Classroom.Courses.CourseWork.get(courseId = '7131560586', id = studentSubmission.courseWorkId)
      var studentSubmissionArray = [courseworkResponse.title, courseworkResponse.maxPoints];
      studentSubmissionArray.push(studentSubmission.assignedGrade, studentSubmission.courseWorkType, studentSubmission.late, studentSubmission.state, studentSubmission.courseWorkId);
      studentSubmissionsArray.push(studentSubmissionArray);
    }
  } else {
    studentSubmissionsTable = "No Students Found";
  }
        pageToken = response.nextPageToken;

  } while (pageToken);

  studentSubmissionsArray.sort()

  var studentSubmissionsTable = "<table border = 1, cellpadding = 8><tr><th>#</th><th>Title</th><th>Max Points</th><th>Assigned Grade</th><th>Type</th><th>late</th><th>State</th><th>Coursework ID</th></tr>"
  if (studentSubmissionsArray && studentSubmissionsArray.length > 0) {
    for (i = 0; i < studentSubmissionsArray.length; i++) {
      c = i + 1;
      studentSubmissionArray = studentSubmissionsArray[i];
      studentSubmissionsTable = studentSubmissionsTable + '<tr><td>'+c+'</td><td>'+ studentSubmissionArray[0] + '</td><td>' + studentSubmissionArray[1] + '</td><td>' + studentSubmissionArray[2] + '</td><td>' + studentSubmissionArray[3] + '</td><td>' + studentSubmissionArray[4] + '</td><td>' + studentSubmissionArray[5] + '</td><td>' + studentSubmissionArray[6] + '</td></tr>'
    }
    studentSubmissionsTable = studentSubmissionsTable + '</table>'
  }

  return studentSubmissionsTable
}

...因为我不能明确要求仅我想要的 2 个范围。

为此,请从您的 Apps 脚本编辑器导航到查看 > 显示项目清单-

舱单

...然后根据需要指定身份验证范围。 您可以在此处找到有关相同内容的更多信息,并根据需要参考整个清单结构 希望这会有所帮助。

暂无
暂无

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

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