0

我正在尝试从谷歌课堂名册中提取学生信息。这是我到目前为止所拥有的:

function studentRoster() {
  var optionalArgs = {
    pageSize: 2
  };
  var getStudents = Classroom.Courses.Students.list("757828465",optionalArgs).students;
  Logger.log(getStudents);
}

桑迪在下面的回答帮助解决了我的部分问题,我将其作为日志(姓名、身份证、电子邮件等已更改):

[16-01-05 17:44:04:734 PST] [{profile={photoUrl= https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAA/4252rscbv5M/photo.jpg , emailAddress=jsdoe@fjuhsd .org, name={givenName=John, familyName=Doe, fullName=John Doe}, id=108117124004883828162}, courseId=757828465, userId=108117124004883828162}, {profile={photoUrl= https://lh3.googleusercontent.com/ -XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAAA/4252rscbv5M/photo.jpg , emailAddress=jhdoe@fjuhsd.org, name={givenName=Jane, familyName=Doe, fullName=Jane Doe}, id=115613162385930536688}, courseId=757828465, userId=130563682856363 }]

所以我现在的问题是:如何只提取这些信息的某些部分(如全名和电子邮件)?

最终结果会将其推送到谷歌表格。

4

2 回答 2

1

Classroom API Reference 下的 Collection 部分可以帮助阐明访问所需字段所需的一些对象链接。

以下代码将生成学生姓名、电子邮件和相关课程 ID 的列表。

function listStudents() {
  var optionalArgs = {
    pageSize: 0     // Max output
  };
  var response = Classroom.Courses.Students.list(xxxxxxxxx; // Put CourseID here
  var students = response.students;
  if(students && students.length > 0){
    for( i = 0; i < students.length; i++){
     var student = students[i];
     // fullName is normally prefixed with s/      use of .substring removes first two characters
     Logger.log('%s %s %s',  student.profile.name.fullName.substring(2), student.profile.emailAddress, student.courseId    );
    }
  } else {
    Logger.log('No students in this course');
  } 
}

收藏课程.学生

于 2016-01-19T02:42:29.603 回答
0

快速入门示例正在使用该list方法,该list方法采用可选的查询参数。其中之一是pageSize

List 的查询参数

您正在使用该get方法。

文档 - 获取方法

get方法的唯一选项是用于Path. 而且只有一种设置,即id.

所以,那个名为 的对象文字optionalArgs,你不需要做你正在做的事情。 optionalArgs是一个对象,因为它具有花括号,并且具有“键/值”对的元素。它是“字面的”,因为它是输入到代码中的,而不是用代码构建对象。

如果您进行了搜索(使用 Ctrl + F 打开搜索对话框)并搜索optionalArgs,您会发现它没有在任何地方使用。因此,使用该方法时不需要optionalArgs具有该属性的对象。pageSizeget

于 2016-01-05T22:26:32.527 回答