google-apis-explorer - 无法从 Google 课堂学生资料中接收电子邮件
问题描述
我正在尝试编写一个 PHP 例程来将 Google Classroom 注册数据导入我们的数据库。这是我的范围:
$client->setScopes([Google_Service_Classroom::CLASSROOM_COURSES_READONLY, Google_Service_Classroom::CLASSROOM_ROSTERS_READONLY, Google_Service_Classroom::CLASSROOM_PROFILE_EMAILS]);
然后我正在尝试浏览班级注册数据。(我在我的个人 Google 帐户中开设了一个课程,并让一些同事注册了该课程。)我正在获取个人资料,但 emailAddress 始终为空白:
$results = $service->courses->listCourses();
foreach ($results->getCourses() as $course) {
$roster = $service->courses_students->listCoursesStudents($course->id);
foreach ($roster['students'] as $student) {
$profile = $student['profile'];
$name = $profile['name']; // Works
$first_name = $name['givenName']; // Works
$email = $profile['emailAddress']; // Always null
}
}
我错过了什么?
解决方案
这已经神秘地开始起作用了......这并没有让我感觉很好,但你知道那种感觉,对吧?没有办法让问题再次出现,所以你只需要希望它不会......如果是这样,我会再次在这里发布。
也许这与我们刚刚用新的范围重新填充表单有关。因此,目前,我在连接之前收到“Google 尚未验证该应用程序”的警告。所以也许是新的作用域,或者是警告。
推荐阅读
- java - 验证 REST API 中的查询参数
- wordpress - Gutenberg 块 - 在块内处理服务器数据
- java - 如何处理“在 SpEL 中的对象上找不到属性或字段”?
- javascript - Leaflet circleMarker 弹出窗口现在显示
- email - Gitlab不发送电子邮件
- java - Vaadin 8 以编程方式更改全局字体
- jquery - css jquery动画与文本之间的延迟
- javascript - 测量卷轴最准确的方法是什么?
- angular - dotnet 核心中的 Angular 应用程序。页面不会更新正在更改的文件的更改
- swift - Firebase Observe() 说明