我如何将 OAuth 范围解析为 GSheets 并调出课堂功能,以便获取分配数据和 post 到 GSheet?

How do I resolve OAuth scopes to GSheets and in call out to a GClassroom function, in order to grab assignment data and post to GSheet?

我不知道 JSON,所以我正在尝试使用 GScript 对此进行编码。我想组合调用此函数,该函数从将数组信息发布到 GSheet 的工作脚本函数中获取课堂信息。

我第一次 运行 下面的脚本,我触发了 API 身份验证并获得了我需要的信息,尽管只在 Logger 中。

var email = "my_email@something.org";

function countWork(email) {
  var courseId = "valid_courseId";  
  var data = ""; // String of resulting information from loop below
  var assignments = Classroom.Courses.CourseWork.list(courseId);
  var length = assignments.courseWork.length;
  // Loop to gather info
    for (j = 0; j < length; j++) {
    var assignment = assignments.courseWork[j];        
    var title = assignment.title;
    var created = assignment.creationTime;
    Logger.log('-->Assignment No. %s -->%s -->(%s)',j+1,title,created);  
    }
    return data;
}

但出于某种原因,我无法在这个版本的脚本上设置 OAuth 范围,我已经替换了发布到 GSheet 所需的数组。我收到错误消息 "Classroom is not defined (line 7...)." 我需要做什么才能识别 Classroom.Courses.etc?

var email = "my_email@something.org";

function extractAssignmentData(email) {
  var courseId = "valid_courseId"; //
  var data = []; // Array of resulting information from loop below
  var assignments = Classroom.Courses.CourseWork.list(courseId); // error: Classroom is not defined (line 7)
  var length = assignments.courseWork.length;

  // Loop to gather data
    for (j = 0; j < length; j++) {
    var assignment = assignments.courseWork[j];  
    // types of information: description, creationTime, updateTime, dueDate, dueTime, workType 

    var title = assignment.title;
    var created = assignment.creationTime;
    var info = [j+1,title,created];
    data.push(info);   
    }
    return data;
}

非常感谢 Tanaike,感谢您提供有用的回复!

根据您的建议,我找到了 this post,其中明确描述了如何查阅清单文件,以及如何将范围合并到 appsscript.json。

我仍然不确定为什么第一个版本的脚本会触发范围

"https://www.googleapis.com/auth/classroom.coursework.students"

而第二个却添加了这个:

"https://www.googleapis.com/auth/classroom.coursework.me.readonly"

但是,由于我现在知道如何添加我需要的内容并且可以访问我需要的课堂信息,所以这是一个静音点。再次感谢! (我不确定如何将你的评论标记为我问题的答案——你应该得到分数!)