Google Classroom API modifyAttachments

拜拜、爱过 提交于 2019-12-17 21:20:36

问题


When executing the courses.courseWork.studentSubmissions.modifyAttachments method in the Google Classroom API, a 403 error is returned when I try to add the attachment to the student's submission.

GoogleJsonResponseException:  
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "@ProjectPermissionDenied The Developer Console project is not permitted to make this request.",
    "reason" : "forbidden"
  } ],
  "message" : "@ProjectPermissionDenied The Developer Console project is not permitted to make this request.",
  "status" : "PERMISSION_DENIED"
}

The call is being made from an authenticated student account and being added as a Link resource. The Developer Console project DOES have the Google Classroom API enabled, and other calls to the Google Classroom API are working fine, such as courses.list and courses.courseWork.studentSubmissions.get. What am I missing? The same error is returned when using the Try it! app in the Google Classroom documentation site.


回答1:


When modifying assignments/courseWork or student submissions, only the Developer console project that created those objects can modify them. This means that only projects that created the corresponding course work can modify them, otherwise a 403 PERMISSION_DENIED error is returned. You can easily determine if the course work item is associated with the Developer Console project making the request by checking the associatedWithDeveloper property on the Google Classroom course work response.




回答2:


It took me a while to figure this out myself, but the best way to go in my opinion is to first create the coursework (i.e. assignment or question) itself with Google Script or using the Classroom API. The coursework is then associated with the correct console project and you are cleared to manage the submissions from thereon.




回答3:


All Classroom API methods may return a PERMISSION_DENIED (HTTP 403) error if an end user does not meet prerequisites for access. The message accompanying the error contains an error message to help you identify the cause and direct users to take the appropriate action.

ProjectPermissionDenied indicates that the request attempted to modify a resource associated with a different Developer Console project.

Possible Action: Indicate that your application cannot make the desired request. It can only be made by the Developer Console project of the OAuth client ID that created the resource.



来源:https://stackoverflow.com/questions/38313748/google-classroom-api-modifyattachments

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!