【问题标题】:Courses.List displays course, but Courses.Delete says Course UnknownCourses.List 显示课程,但 Courses.Delete 显示课程未知
【发布时间】:2019-06-13 11:16:06
【问题描述】:

我正在尝试使用 API 从 Google Classroom 中删除所有课程。我调用 Classes.List 来检索所有类的 ID 号,然后将其传递给 Classes.Delete。但是,此时我得到一个“未找到请求的实体”。错误信息。

我不确定这如何在 List 命令中返回,但在删除时失败。是否有我在 Google 文档中看不到的删除命令的任何先决条件?

Google 网站的“试用此 API”部分也会发生同样的情况,因此相当有把握这不是代码问题。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 
"https://classroom.googleapis.com/v1/courses");         
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Authorization: Bearer $token",
    "Content-Type: application/json"
));
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response, true);

foreach ($response['courses'] as $Course)
{   
    $VLEID=$Course['id'];   

    $ch1 = curl_init();
    curl_setopt($ch1, CURLOPT_URL, 
"https://classroom.googleapis.com/v1/courses/".$VLEID);
    curl_setopt($ch1, CURLOPT_CUSTOMREQUEST, "DELETE"); 
    curl_setopt($ch1, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
        "Authorization: Bearer $token"
    ));
    $response1 = curl_exec($ch1);
    curl_close($ch1);       

    var_dump($response1);
    echo "<br/>";
    die();
}   

【问题讨论】:

  • 如果本课程的学生没有请求的 ID他的课程不存在,则会出现您遇到的错误 NOT_FOUND

标签: google-classroom


【解决方案1】:

这似乎是 Google 课堂方面的错误。请在此处发布此问题的同时查看 GC 问题跟踪器中记录的问题,并且问题创建者还提到它可能是回归问题,因为相同的 API 之前返回了不同数量的课程。 https://issuetracker.google.com/issues/134993210

【讨论】:

    【解决方案2】:

    我在我的自动化测试套件中看到了同样的问题。据我所知,从 Courses.List 返回的一些课程正在返回已被删除的课程。我不能做课程。获取 id 的,也不会在课堂网页上浏览课程时显示。我知道它以前没有这样做,因为这个测试套件已经存在多年了,但我最近没有运行它,所以要么在谷歌方面的某个地方出现了回归,要么可能只是需要一段时间删除以完全传播。我知道其中一些服务的分布式特性有时(通常)表现为短期的不一致。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多