【问题标题】:Google Classroom API list MaterialsGoogle Classroom API 清单 材料
【发布时间】:2019-01-30 16:31:30
【问题描述】:

是否有任何方法可以在 Google 课堂报告中列出材料?我收到了通知和课程作业,但没有出现材料:

我正在使用:

<?php
    $client    = $this->google->getClient();
    $service   = new Google_Service_Classroom($client);
    $optParams = array(
                    'courseStates'  => 'ACTIVE',
                    'pageSize'      => 20,
                    'teacherId'     => $teacher,
    );
    $results = $service->courses->listCourses($optParams);

    foreach($results->getCourses() as $r)
    {
      $course = (string)$r->getId();
      // coursework
      $work = $service->courses_courseWork->listCoursesCourseWork($course, array());
      // ...

      // announcements
      $announ = $service->courses_announcements->listCoursesAnnouncements($course, array('announcementStates'  => 'PUBLISHED'));
     // ...
    }

    // materials???

于 2019 年 1 月 31 日编辑

我已经测试了@Mr.Rebot 的建议。问题是 Classroom API 仅列出文件或作业中附加的驱动器文件......这样的材料:

我的问题是我需要列出新的课堂材料选项:

所以,当我查询课程作业的 ->getMaterials() 时,我得到一个空数组()

【问题讨论】:

    标签: google-api google-classroom


    【解决方案1】:

    你需要添加的范围是

    Google_Service_Classroom::CLASSROOM_COURSEWORKMATERIALS
    Google_Service_Classroom::CLASSROOM_COURSEWORKMATERIALS_READONLY
    

    然后你可以通过调用来检索列表

    $this->service->courses_courseWorkMaterials->listCoursesCourseWorkMaterials($course_id);
    

    【讨论】:

      【解决方案2】:

      如果您检查courses.courseWork overview,您会看到materials[] 包含在其中。

      {
        "courseId": string,
        "id": string,
        "title": string,
        "description": string,
        "materials": [
          {
            object(Material)
          }
        ],
      
      .......
      

      只需在courseWork回复下获取材料。

      【讨论】:

        猜你喜欢
        • 2019-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多