2016-04-05 123 views
1

從Google獲取不包含任何電子郵件地址的學生JSON,並且用戶的姓名包含值「未知用戶」。Google課堂API返回沒有電子郵件地址的學生資料JSON

{ 
    "courseId":"1234", 
    "profile":{//No email address 
      "id":"openId", 
      "name":{"fullName":"Unknown user"},//Why "Unknown user" 
      "photoUrl":"correct_url" 
    }, 
    "userId":"openId" 
} 

我們無法訪問教師的Google課堂帳戶,因此我們試圖用測試帳戶重現問題。它只發生在少數用戶身上,對所有其他人都適用。

我們使用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.readonlyhttps://www.googleapis.com/auth/classroom.profile.emailshttps://www.googleapis.com/auth/classroom.profile.photoshttps://www.googleapis.com/auth/classroom.rosters.readonly

回答

1

用戶是否可以被刪除?在某些情況下,如果用戶已被刪除,API將返回一個「未知用戶」作爲名稱(並且沒有電子郵件地址)的「用戶」。

0

爲了有電子郵件地址返回您需要申請特殊https://www.googleapis.com/auth/classroom.profile.emails的OAuth範圍。

+0

已經這樣做,更新了問題。正如我已經提到,代碼適用於所有其他用戶,所以它不應該是範圍問題。 – saurav

相關問題