python - 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 对在网站上创建的作业进行评分?
解决方案
根据相关帖子的现有答案:
修改作业/课程作业或学生提交时,只有创建这些对象的开发者控制台项目才能修改它们。这意味着只有创建了相应课程作业的项目才能修改它们,否则403 PERMISSION_DENIED
会返回错误。associatedWithDeveloper
您可以通过检查Google 课堂课程作业响应上的属性轻松确定课程作业项是否与发出请求的开发者控制台项目相关联
推荐阅读
- html - 如何让我的 gif 显示在此网格的第一行和 2 列中?
- javascript - 如何将焦点转移到extjs中的下一个/上一个选项卡
- javascript - 在 recyclerview 片段中仅显示来自 firebase 的图像文本图像未加载
- drupal - Drupal 网络表单报告
- c++ - 如何从 Windows 资源管理器上的自定义文件类型中删除 System.Size 属性?
- c# - C# 音频播放不好
- java - Android MVVM/Repository 如何强制 LiveData 从存储库更新?
- awk - awk 浮点比较不起作用
- c# - 即使使用 Linq C# 在第二个表中没有相关信息,我也需要从表 1 中获取所有行
- xml - 如何在odoo13中制作自己的发票模板,模块