我已经能够成功地从课堂上获得课程和学生提交列表。
我现在想要获取学生的电子邮件地址,而不是使用学生提交返回的用户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()页面上建议了所有范围? ? ? ?
答案 0 :(得分:0)
从文档中看来,您应该使用
.get('emailAddress')
关于userProfiles.get(userId)
电话的结果。
此外,您应该将此调用包装在try-except
块中,以处理请求中的失败。