Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何检索教师中的学生列表';谷歌教室安卓应用程序的s类?_Android_Google Api_Google Classroom - Fatal编程技术网

Android 如何检索教师中的学生列表';谷歌教室安卓应用程序的s类?

Android 如何检索教师中的学生列表';谷歌教室安卓应用程序的s类?,android,google-api,google-classroom,Android,Google Api,Google Classroom,我遵循了谷歌课堂教程,在谷歌课堂上检索教师的课堂列表(下面的代码,来自谷歌提供的示例Android代码的相关部分) 现在我想检索一个特定班级中的学生列表,课堂网站上唯一有用的信息是关于REST呼叫的信息,我还不太了解这些信息 Android代码检索一个教师谷歌教室班级列表 private List<String> getDataFromApi() throws IOException { ListCoursesResponse response = mActivity.mSe

我遵循了谷歌课堂教程,在谷歌课堂上检索教师的课堂列表(下面的代码,来自谷歌提供的示例Android代码的相关部分)

现在我想检索一个特定班级中的学生列表,课堂网站上唯一有用的信息是关于REST呼叫的信息,我还不太了解这些信息

Android代码检索一个教师谷歌教室班级列表

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;
}
private List getDataFromApi()引发IOException{
ListCoursesResponse response=mActivity.mService.courses().list()
.setPageSize(10)
.execute();
列出课程=response.getCourses();
列表名称=新的ArrayList();
如果(课程!=null){
用于(课程:课程){
name.add(course.getName());
}
}
返回姓名;
}
下面是我如何修改上述代码,以尝试获取类中的学生姓名列表。但是,API在执行此代码时返回一条“无权限”消息,即使教师应该有权查看自己班级中的学生姓名

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;
}
private List getDataFromApi()引发IOException{
ListCoursesResponse response=mActivity.mService.courses().list()
.setPageSize(10)
.execute();
列出课程=response.getCourses();
列表名称=新的ArrayList();
如果(课程!=null){
name.add(courses.size()+);
用于(课程:课程){
name.add(course.getName());
name.add(course.getId());
ListStudentsResponse studentsResponse=mActivity.mService.courses().students().list(course.getId())
.setPageSize(40)
.execute();
List students=studentsResponse.getStudents();
name.add(students.size()+);
用于(学生:学生){
name.add(student.toString());
}
}
}
返回姓名;
}

呜呼,看来我必须发布一个问题才能自己最终找到答案。所以,我发布的第二段代码确实有效。问题是示例应用程序中的初始范围仅请求课程访问,而不请求花名册访问。一旦我添加了花名册范围,我就可以检索学生数据。现在我只需要学习如何解析JSON数据

你的问题不清楚,你想在你的应用程序中使用谷歌教室API,还是你正在开发一个示例应用程序,在其中创建师生管理系统?我已经有一个面向教师的Android应用程序,我想使用教室API获取课程列表,以及每门课程中的学生姓名。教室团队发布了一些示例代码,展示了如何对用户进行身份验证,以及如何在用户id下获取类列表。它非常有效。现在我想知道如何在一个特定的classid下获得一个学生姓名列表——这是Android应用程序的全部。如果有任何可用的API,那么它应该可以工作,您使用的是哪种API?在这里发布。我发现它的工作原理与你的代码类似。当通过OAuth2进行授权时,我确实必须将ClassroomScopes.教室\u ROSTERS\u READONLY添加到作用域中。如果您是从快速启动开始工作的,请在MainActivity-private静态最终字符串[]SCOPES={ClassroomScopes.classket\u ROSTERS\u READONLY,ClassroomScopes.classket\u PROFILE\u EMAILS}中使用类似的内容;如果您使用这个库,就像看起来的那样,那么就不需要解析JSON。我找不到一种方法从特定的课程id获取学生姓名列表。我使用了list students=studentsResponse.getStudents();然后是student.toString(),我找不到只获取学生名字和姓氏的代码。userid或profile只有一个选项,所以toString()给了我JSON中的整个student对象,然后我设法解析它以获得名字和姓氏以及电子邮件。如果可能的话,我想直接拿到。有什么建议吗?student.getProfile().getName().getFullName();student.getProfile().getEmailAddress();