我的代码不再起作用了,但是我没有更改它

时间:2020-09-30 17:23:32

标签: google-apps-script google-classroom

我几个月前创建了一个脚本来发布我在Google教室中学生的作业。代码如下

await ctx.send(f"{random.choice(messages).content}")

我在其中放置XXXXXXXXXXX的地方是课程ID。 该脚本将附加到包含标题,作者和youtube链接的3列电子表格中,并且分配是作为链接附加到资料的这些视频之一。该脚本应该每天上午9:00在3个YouTube视频中的3种不同的材料中发布,并在电子表格的列表中排行

当我尝试执行称为pubblicavideo的功能时,

GoogleJsonResponseException:Chiamata API教室.courses.courseWork.create非合法错误:'course_work.description'(TYPE_STRING)的值无效,883(riga 69,文件“ Codice”)

我认为英语翻译类似

GoogleJsonResponseException:对课堂.courses.courseWork.create的API调用无法正常工作并出现错误:“ course_work.description”(TYPE_STRING)的值无效,883(第69行,文件“代码”)

这个脚本在8月13日之前运行良好。我不知道Google课堂脚本是否有任何更改。

任何人都知道如何使其重新工作吗?

1 个答案:

答案 0 :(得分:1)

答案:

问题似乎在于,在某些时候,从autorini.getCell(k, 1).getValue()获得的值的类型不是引起错误的字符串。

解决步骤:

pubblicavideo()中,在传递了变量pubblica()的循环内调用函数contarighe。对于每次运行k,此值将放入pubblica中。

这些是有问题的行:

var autorini = foglio.getRange("A709:A3014");
var cello = autorini.getCell(k, 1);
var autore = cello.getValue();

autore发出请求之前,您需要检查Classroom.Courses.CourseWork.create()的值。

As per the documentationCourseWork资源上,description的值应为String类型。

在创建课程作业对象时:

var courseWork = {
    'title': titolo,
    'description': autore,
    'materials': [
      {'link': { "url": link}}    
    ],
    'workType': 'ASSIGNMENT',
    'state': 'PUBLISHED',
  }

autore的值必须反映这一点。确保在循环中的任何位置停止代码,工作表的值都是String类型,并且可以正确检索。

我希望这对您有帮助!

参考文献: