我正在尝试使用API从Google课堂删除所有课程。我调用Classes.List来检索所有类的ID号,然后将其传递给Classes.Delete。但是,这时我得到一个“找不到请求的实体”。错误消息。
我不确定这在List命令中如何返回,但是在Delete时失败。我在Google文档中看不到Delete命令的任何先决条件吗?
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();
}
答案 0 :(得分:0)
我在自动化测试套件中遇到了相同的问题。据我所知,一些课程是从Courses.List返回的,返回的是已经删除的课程。我无法执行课程。获取ID或在教室网页上浏览课程时也不会显示ID。我知道它以前不是这样做的,因为这个测试套件已经存在了很多年,但是我最近还没有运行它,所以要么在Google方面某个地方出现了回归,要么可能只是花了一段时间删除才能完全传播。我知道其中一些服务的分布式特性有时表现为(通常)短期不一致。
答案 1 :(得分:0)
这似乎是Google教室方面的错误。在此发布此问题的大约同一时间,请参阅已在GC问题跟踪器中记录的问题,问题创建者还提到,由于同一API较早返回了不同数量的课程,因此该问题可能已退回。 https://issuetracker.google.com/issues/134993210