当前位置: 首页 > 知识库问答 >
问题:

为什么在使用谷歌课堂API时会出现404错误?

海信鸥
2023-03-14

我正在用PHP编写一个应用程序,它将连接到我的域名的Google教室。但是,当我尝试使用Google教室API执行任何操作时,会出现以下错误:

Message: Error calling GET https://www.googleapis.com/v1/courses?pageSize=100: (404) Not Found

到目前为止我的代码:

$scopes = array(
  'https://www.googleapis.com/auth/classroom.courses',
  'https://www.googleapis.com/auth/classroom.courses.readonly',
  'https://www.googleapis.com/auth/classroom.rosters',
  'https://www.googleapis.com/auth/classroom.rosters.readonly'
);

$gServiceEmail = "random@developer.gserviceaccount.com";
$gServiceKey = file_get_contents("../path/to/cert.p12");

$client = new Google_Client();
$gAuth = new Google_Auth_AssertionCredentials(
  $gServiceEmail,
  $scopes,
  $gServiceKey
);

$gAuth->sub = "user@mydomain.com";
$client->setAssertionCredentials($gAuth);

$service = new Google_Service_Classroom($client);
$results = $service->courses->listCourses();

我已经在谷歌管理控制台的应用编程接口设置中为服务号启用了作用域,并在开发人员控制台中启用了应用编程接口。我哪里做错了?

共有2个答案

姜志
2023-03-14

找不到id为的课程。对于课程列表,请使用courses.list(),如以下示例所示。

$client = getClient();
$service = new Google_Service_Classroom($client);

// Print the first 10 courses the user has access to.
$optParams = array(
  'pageSize' => 10
);
$results = $service->courses->listCourses($optParams);

if (count($results->getCourses()) == 0) {
  print "No courses found.\n";
} else {
  print "Courses:\n";
  foreach ($results->getCourses() as $course) {
    printf("%s (%s)\n", $course->getName(), $course->getId());
  }
}

参考文献:

https://developers.google.com/classroom/quickstart/php?hl=en https://developers.google.com/classroom/guides/manage-courses?hl=en

席成仁
2023-03-14

根据课堂API的文档,我认为您的endpoint是错误的。试着把它改成https://classroom.googleapis.com

样品要求:

GET https://classroom.googleapis.com/v1/courses?pageSize=100&key={YOUR_API_KEY}
 类似资料:
  • 我是谷歌教室api新手,我想在本地机器上创建一门课程。我能不能做?如果创建,那么如何使用javascript?在我尝试时,代码出错= 在我的代码中,我使用函数create课程()来创建一个新的课程。 我的代码如下所示 请回复我。。。。。。。。。。

  • 尽管花了几个小时的时间,我还是弄不明白为什么会出现404错误。 我有一个非常简单的spring MVC应用程序,但我真的看不出有什么错误。请帮帮我,我疯了 结构: SpringMVCDemo src公司 视图 main-menu.jsp 我的控制器:HomeController。Java语言 我的视图:主菜单。jsp 网状物xml spring mvc演示servlet。xml

  • 问题内容: 如果一个类实现了另一个类,那是什么意思?我找到了以下代码示例:http : //www.java2s.com/Code/Php/Class/extendsandimplement.htm 但不幸的是,它没有任何解释… 问题答案: 实现是指它采取接口指定的指定 行为 。考虑以下接口: 无论是和类实现的接口。 接口的优点在于,我们现在可以通过接口引用此类的实例。考虑以下示例: 该循环的输出

  • 在我的gcloud控制台中,我定义的入口显示以下错误: 同步期间出错:评估入口规范时出错:服务“monitoring/kube prometheus”类型为“ClusterIP”,应为“NodePort”或“LoadBalancer” 我使用traefik作为反向代理(而不是nginx),因此我使用集群IP定义入口。据我所知,所有流量都是通过traefik服务(定义了负载均衡器入口)代理的,因此我

  • 问题内容: 我玩了一段时间我的代码,这不是关于错误或任何东西,但我只是不明白为什么main()类不需要初始化就可以运行… 但是,是的,非常感谢您的阅读。 问题答案: 与许多其他语言不同,类主体是Python中的可执行语句,并在解释器到达该行后立即执行。当您运行此“程序”时: 它只是打印“嘿”而没有创建任何对象。 这同样适用于函数定义语句(但不适用于函数体)。运行此命令时: 它显示“ hi”,但不显

  • 我想在RxJava中实现一个下载一些文件的处理队列。我想下载的文件数量可能高达100个左右。 一切都是在Android上使用RxJava 1.1.1开发的 我做错了什么?