【问题标题】:Google script to add multiple students to a class in Google Classroom谷歌脚本将多个学生添加到谷歌课堂中的一个班级
【发布时间】:2017-12-30 00:41:04
【问题描述】:

我已经搜索过,但找不到关于如何在 Google 课堂中将多个学生添加到一个班级的答案。我需要通过一个数组一次添加许多学生,但找不到如何使用数组来添加学生,因为 Classroom API 命令只允许我一次输入一个,因此只能抓取电子表格 A 列中数组中的最后一封电子邮件。如何一次添加整个数组?到目前为止,我所拥有的如下:

 function addStudents () {
 var st = [];
 var ss = SpreadsheetApp.openById('ID').getSheetByName('Sheet1');
 var lr = ss.getLastRow();
 var a = ss.getRange(1, 1, lr, 1).getValues();
 st.push(a);
 Classroom.Courses.Students.create({userId: st,}, course.id);
       // If userId is singular, how do I add the array?
}

【问题讨论】:

    标签: javascript arrays google-apps-script google-classroom


    【解决方案1】:

    Google Classroom API 不包含直接将学生批量添加到课程的特定方法。可用的方法是按时间添加一个学生,所以应该选择一种方法将此方法应用于数组的每个成员。

    另一种方法是使用 for 循环,但也可以使用 JavaScript 数组方法,如 forEach

    例子:

    请注意 getValues() 返回一个二维数组,所以首先我们应该展平学生数组。

    var a = [['Ana'],['Bob']]; // 2D Array
    var b = [].concat.apply([], a); // flattened array
    b.forEach(function(st){
      console.info(st);
    });

    【讨论】:

      【解决方案2】:

      没有可用的方法来做到这一点,正如鲁本所说,你必须使用循环方法......唯一的错误是谷歌在一分钟内有 1,200 个请求的限制。我正在处理这个限制,因为我必须在课程中添加和删除学生。因此,只要数量增加,每个请求都有一个计时器的循环就可以解决问题。

      现在每个学生都有 4 门课程需要在一段时间内从 4 门课程中删除并添加到其他 4 门课程中。有 150 名学生我达到了 1,200 次请求的限制......除了有时学生有 6 门, 2、10门课程。每个请求只需 5 秒的简单延迟......它就可以解决问题。

      仍然希望谷歌添加一个方法来接受一个数组来删除和添加学生到课程。

      【讨论】:

        猜你喜欢
        • 2016-02-25
        • 1970-01-01
        • 2017-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多