从userID获取学生邮件

时间:2017-05-10 15:41:13

标签: python-3.x api google-classroom

我已经能够成功地从课堂上获得课程和学生提交列表。

我现在想要获取学生的电子邮件地址,而不是使用学生提交返回的用户ID https://developers.google.com/classroom/guides/manage-users非常有用地说使用userProfiles.get所以使用此行=

studentEmail = service.userProfiles().get(userId = student['userId'])

导致以下输出:

<googleapiclient.http.HttpRequest object at 0x0000000003F9C048> TURNED_IN

正如预期的那样,我在测试教室里有一名学生和一名完成工作的学生。但这显然不是电子邮件地址! 那么我需要用get()做什么呢?我试过了

get().getEmailaddress()

但这似乎不起作用,文档对我来说有点模糊。

提前致谢。

编辑***

进行了一些更改,所以我的循环现在看起来像这样     students = studentSubmissionResults.get(&#39; studentsSubmissions&#39;,[])

for student in students:
    studentId = service.userProfiles().get(userId = 
                student['userId']).execute()
    studentEmail = studentId.get('emailAddress').execute()
    assignmentState = student['state']
    print('The following students have completed the work:\n', studentEmail 
           , assignmentState )

这导致范围错误不足,但我在userProfile.get()页面上建议了所有范围? ? ? ?

1 个答案:

答案 0 :(得分:0)

从文档中看来,您应该使用

.get('emailAddress')

关于userProfiles.get(userId)电话的结果。

此外,您应该将此调用包装在try-except块中,以处理请求中的失败。