如何在Google Approom for Android App中检索教师班级中的学生列表?

时间:2015-07-29 01:15:09

标签: android google-api google-classroom

我已经按照Google课堂教程检索了Google课堂中教师课程的列表(下面的代码,相关部分来自Google提供的示例Android代码)。

现在我想检索特定班级中的学生列表,而“课堂”网站上唯一有用的信息会提供有关REST调用的信息,我还不太了解。

Android代码,用于检索教师Google课堂班级列表

private List<String> getDataFromApi() throws IOException {
    ListCoursesResponse response = mActivity.mService.courses().list()
        .setPageSize(10)
        .execute();
    List<Course> courses = response.getCourses();
    List<String> names = new ArrayList<String>();
    if (courses != null) {
        for (Course course : courses) {
            names.add(course.getName());
        }
    }
    return names;
}

以下是我修改上述代码以尝试获取类中学生姓名列表的方法。但是,在执行此代码时,API会返回NO_PERMISSION消息,即使教师应该有权在自己的类中查看学生姓名。

private List<String> getDataFromApi() throws IOException {
    ListCoursesResponse response =    mActivity.mService.courses().list()
            .setPageSize(10)
            .execute();
    List<Course> courses = response.getCourses();
    List<String> names = new ArrayList<String>();
    if (courses != null) {
        names.add(courses.size()+"");

        for (Course course : courses) {

            names.add(course.getName());
            names.add(course.getId());

            ListStudentsResponse studentsResponse = mActivity.mService.courses().students().list(course.getId())
                    .setPageSize(40)
                    .execute();

            List<Student> students = studentsResponse.getStudents();

            names.add(students.size()+"");

            for (Student student : students) {

                names.add(student.toString());
            }
        }
    }
    return names;
}

1 个答案:

答案 0 :(得分:1)

呜呜,看起来我必须发一个问题才能最终弄清楚答案。所以,我发布的第二部分代码确实有效。问题是示例应用程序中的初始Scope仅请求COURSE访问而不是ROSTER访问。一旦我添加了ROSTER Scope,我就可以检索学生数据。现在我只需要学习如何解析JSON数据。