首页 > 解决方案 > Google Classroom API:通过网站创建的成绩作业

问题描述

我在 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 开发人员控制台项目不允许发出此请求。” 据我了解,发生此错误是因为该网站使用的开发者控制台项目与我使用的 make API 请求不同。

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

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

标签: pythongoogle-cloud-platformgoogle-oauthgoogle-classroom

解决方案


根据相关帖子的现有答案

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


推荐阅读