目前,我有一个脚本可以正确列出 Google Classroom 中某个班级的学生,但它没有列出所有学生,只有前 30 名。我需要它列出所有学生,无论有多少有。我现在拥有的是以下内容:
function listStudents() {
var s = SpreadsheetApp.getActiveSpreadsheet();
var sh = s.getSheetByName('CLASS');
var r = sh.getDataRange();
var n = r.getNumRows();
var d = r.getValues();
for (x = 0; x < n; x++) {
var i = d[x][0];
if(i == ''){ continue; } else if (i == 'D') {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('LISTSTUDENTS');
var tea = Classroom.Courses.Students.list(d[x][8]);
var t = tea.students;
var arr = [];
try {
for (i = 0; i …
Run Code Online (Sandbox Code Playgroud) 我正在用 PHP 编写一个应用程序,它将连接到我域的 Google Classroom。但是,当我尝试使用 Google Classroom API 执行任何操作时出现以下错误:
Message: Error calling GET https://www.googleapis.com/v1/courses?pageSize=100: (404) Not Found
Run Code Online (Sandbox Code Playgroud)
到目前为止我的代码:
$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();
Run Code Online (Sandbox Code Playgroud)
我已在 Google 管理控制台的 API 设置中为服务帐户启用了范围,并在开发人员控制台中启用了 api。我哪里错了?
我正在尝试使用Classroom API v1在Google Apps脚本中从Google课堂访问课程作业。我按照快速入门中的步骤成功获取了我的课程列表,但是当我尝试使用以下方法访问我的一个课程中的课程时:
var coursework = Classroom.Courses.CourseWork.list('valid courseId');
Run Code Online (Sandbox Code Playgroud)
我收到“呼叫者没有权限”错误。不过,我可以使用API资源管理器成功检索课程列表。
通过使用API Explorer,看起来该命令需要“ classroom.coursework.students.readonly”作用域。但是,当我在权限对话框中单击“允许”按钮时,该作用域不会添加到我的项目中。有没有一种方法可以将其添加到项目的范围列表中?我已经搜索过SO,并且看到过其他语言(例如python)中设置范围的提及,但是在Apps Script中却没有。我也看到有人提到手动授权范围在Apps脚本中,但没有说明如何执行此操作。
我已经碰壁了,所以如果有人有建议,我将非常感激。谢谢。
courses.courseWork.studentSubmissions.modifyAttachments
在Google Classroom API中执行该方法时,尝试将附件添加到学生提交中时返回403错误。
GoogleJsonResponseException:
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "@ProjectPermissionDenied The Developer Console project is not permitted to make this request.",
"reason" : "forbidden"
} ],
"message" : "@ProjectPermissionDenied The Developer Console project is not permitted to make this request.",
"status" : "PERMISSION_DENIED"
}
Run Code Online (Sandbox Code Playgroud)
呼叫是从经过身份验证的学生帐户发出的,并被添加为链接资源。开发者控制台项目确实启用了 Google Classroom API,并且对 Google Classroom API 的其他调用工作正常,例如courses.list
和courses.courseWork.studentSubmissions.get
。我错过了什么?使用Try it!时返回相同的错误!Google Classroom 文档站点中的应用程序。
我正在使用谷歌应用程序脚本为教室创建带有上传文档的作业。但是,有一个错误。
执行失败:收到无效的 JSON 负载。“course_work.materials[0]”处的未知名称“share_mode”:找不到字段。收到无效的 JSON 负载。“course_work.materials[0].drive_file”处的未知名称“id”:找不到字段。收到无效的 JSON 负载。“course_work.materials[0].drive_file”处的未知名称“标题”:找不到字段。(第 2 行,文件“TEST”)[总运行时间 0.061 秒]
这是我的代码。我知道错误所在materials
,但我不确定我做错了什么。
function myFunction() {
var exec = Classroom.Courses.CourseWork.create({
title: "Test File",
state: "DRAFT",
materials: [
{
driveFile: {id: "1ENk55RMtApIydyPFe0uyuhmu6nSV4", title: "Test File"},
shareMode: "STUDENT_COPY"
}
],
workType: "ASSIGNMENT"
}, "3896298178");
Logger.log(exec);
}
Run Code Online (Sandbox Code Playgroud) 我需要从学生的角度以某种方式连接谷歌教室,并列出即将推出的所有作业.我在文档中找不到任何相关内容,但使用google身份验证我应该能够做到吗?
我想创建一个程序,该程序将从我的相关 Google 课堂接收通知,并利用该数据执行某些操作。如何注册 Google 课堂以对活动做出反应?我还没有做过任何东西,而且我对Google的API一无所知。我应该怎么办?
push-notification google-oauth google-cloud-platform google-classroom