【问题标题】:Google Classroom API: Grade assignment created through the websiteGoogle Classroom API:通过网站创建的成绩作业
【发布时间】:2021-10-21 18:18:06
【问题描述】:

我在 google 课堂网站上创建了一个作业,我想使用 Google Classroom API 对其评分。根据文档,这可以通过以下方式实现。

studentSubmission = {
  'assignedGrade': 99,
  'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
    courseId=<course ID or alias>,
    courseWorkId=<courseWork ID>,
    id=<studentSubmission ID>,
    updateMask='assignedGrade,draftGrade',
    body=studentSubmission).execute()

问题是我遇到了权限错误“@ProjectPermissionDenied The Developer Console project is not allowed to make this request。”据我了解,发生此错误是因为该网站使用的开发者控制台项目与我使用 make API 请求的项目不同。

我正在使用同一个 Google 帐户来验证 API 并在 Google Classroom 中创建课程作业。我还确认我拥有所有必需的范围,并使用“Try this API”方法在浏览器中测试了 API,并收到了相同的权限错误。

由于我的用例需要通过网站创建作业,我想知道是否有办法绕过权限错误,以便可以通过 API 对在网站上创建的作业进行评分?

【问题讨论】:

    标签: python google-cloud-platform google-oauth google-classroom


    【解决方案1】:

    根据相关帖子中的existing answer

    修改作业/课程作业或学生提交的内容时,只有创建这些对象的开发者控制台项目才能修改它们。这意味着只有创建了相应课程作业的项目才能修改它们,否则会返回 403 PERMISSION_DENIED 错误。您可以通过检查 Google 课堂课程作业响应中的 associatedWithDeveloper 属性轻松确定课程作业项是否与发出请求的开发者控制台项目相关联

    【讨论】:

    • 我也看到了,但我不明白为什么 API 使用与 UI 不同的开发者控制台项目。如果我无法使用当前的开发者控制台项目,我是否有办法模拟网站使用的项目,或者我是否必须使用 API 制作作业副本以分配成绩?跨度>
    • 我相信使用 API 复制作业来分配成绩将是您可以尝试的解决方法。
    猜你喜欢
    • 2015-12-28
    • 2020-01-30
    • 1970-01-01
    • 2019-05-14
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多