如何使用 Classroom.Courses.patch() 更改课程所有者
How to change course owner using Classroom.Courses.patch()
我正在尝试使用 Apps 脚本更改 Google 课堂课程的所有者。
根据文档,我可以使用 .patch()
来完成。这是相关的脚本:
var body = {
ownerId: owner
}
var mask={
mask:'ownerId'
}
var optArgs = (mask, body);
var course = {
name: classname,
courseState: state,
description: desc,
descriptionHeading: descHead,
room: room,
section: section
};
Classroom.Courses.patch(course, courseId, optArgs )
当我运行更新所有者时,我收到以下错误消息
Could not be updated Invalid JSON payload received. Unknown name "ownerId": Cannot bind query parameter. Field 'ownerId' could not be found in request message.
只是为了演示对比,当我 运行 .update()
改为:
Classroom.Courses.update(course, courseId)
...其余课程详情已完美更新,但.update()
不允许您更改所有者;它必须是 .patch()
才能做到这一点。
根据文档,这是按预期工作的。
courses.update 没有 ownerId
参数,只有 id
.
但是如果您检查 courses.patch 它有 updateMask
参数接受 ownerId
作为有效字段。
有关此服务的详细信息,请参阅课堂 API 的 reference documentation。
刚遇到同样的问题,问题出在 optArgs - 您只需要掩码,而不是更改后的数据。
var optArgs = { mask: 'ownerId' };
var course = {
name: classname,
courseState: state,
description: desc,
descriptionHeading: descHead,
room: room,
section: section,
ownerId: owner
};
Classroom.Courses.patch(course, courseId, optArgs );
我刚才试过这个并且成功了。考虑到,要使此功能生效,用户必须已经是特定 class 中的教师,然后这将使该教师成为所有者。
function changeTeacherOwner() {
var course = { 'ownerId': "EMAIL OF TEACHER" };
Classroom.Courses.patch(course, "COURSE ID", {'updateMask':'ownerId'});
}
我正在尝试使用 Apps 脚本更改 Google 课堂课程的所有者。
根据文档,我可以使用 .patch()
来完成。这是相关的脚本:
var body = {
ownerId: owner
}
var mask={
mask:'ownerId'
}
var optArgs = (mask, body);
var course = {
name: classname,
courseState: state,
description: desc,
descriptionHeading: descHead,
room: room,
section: section
};
Classroom.Courses.patch(course, courseId, optArgs )
当我运行更新所有者时,我收到以下错误消息
Could not be updated Invalid JSON payload received. Unknown name "ownerId": Cannot bind query parameter. Field 'ownerId' could not be found in request message.
只是为了演示对比,当我 运行 .update()
改为:
Classroom.Courses.update(course, courseId)
...其余课程详情已完美更新,但.update()
不允许您更改所有者;它必须是 .patch()
才能做到这一点。
根据文档,这是按预期工作的。
courses.update 没有 ownerId
参数,只有 id
.
但是如果您检查 courses.patch 它有 updateMask
参数接受 ownerId
作为有效字段。
有关此服务的详细信息,请参阅课堂 API 的 reference documentation。
刚遇到同样的问题,问题出在 optArgs - 您只需要掩码,而不是更改后的数据。
var optArgs = { mask: 'ownerId' };
var course = {
name: classname,
courseState: state,
description: desc,
descriptionHeading: descHead,
room: room,
section: section,
ownerId: owner
};
Classroom.Courses.patch(course, courseId, optArgs );
我刚才试过这个并且成功了。考虑到,要使此功能生效,用户必须已经是特定 class 中的教师,然后这将使该教师成为所有者。
function changeTeacherOwner() {
var course = { 'ownerId': "EMAIL OF TEACHER" };
Classroom.Courses.patch(course, "COURSE ID", {'updateMask':'ownerId'});
}