从 Google 获取不包含任何电子邮件地址和用户名的学生 JSON 包含值“未知用户”。
{
"courseId":"1234",
"profile":{//No email address
"id":"openId",
"name":{"fullName":"Unknown user"},//Why "Unknown user"
"photoUrl":"correct_url"
},
"userId":"openId"
}
我们无法访问教师的 Google Classroom 帐户,因此我们正在尝试使用测试帐户重现该问题。它只发生在少数用户身上,其他所有用户都可以正常工作。
我们正在使用 Google Classroom 的 Java API。
我们正在使用的示例代码:
Classroom service = getGoogleClassRoomService(accessToken);
if(service != null) {
ListStudentsResponse studentsResponse = service.courses().students().list(courseId).execute();
List<Student> students = studentsResponse.getStudents();
if(students != null) {
for (Student student : students) {
if (student.getProfile().getEmailAddress() != null) {
//Processing student data
}
}
}
}
需要知道学生的电子邮件地址可以为空的情况,从技术上讲它不应该为空。
示例学生资料 JSON 参考:https ://developers.google.com/classroom/reference/rest/v1/userProfiles#resource-userprofile
验证用户时请求的范围:
https://www.googleapis.com/auth/classroom.courses.readonly https://www.googleapis.com/auth/classroom.profile.emails https://www.googleapis.com/auth/classroom.profile。照片 https://www.googleapis.com/auth/classroom.rosters.readonly