2016-07-11 241 views
0

在Google Classroom API中執行courses.courseWork.studentSubmissions.modifyAttachments方法時,如果嘗試將附件添加到學生的提交中,則會返回403錯誤。Google課堂API修改附件

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" 
} 

該調用是通過經過身份驗證的學生帳戶進行的,並作爲鏈接資源添加。開發者控制檯項目已啓用Google Classroom API,並且其他對Google Classroom API的調用正常工作,例如courses.listcourses.courseWork.studentSubmissions.get。我錯過了什麼?在Google課堂文檔網站中使用Try it!應用時,返回相同的錯誤。

回答

2

修改作業/ courseWork或學生提交時,只有創建這些對象的Developer Console項目才能修改它們。這意味着只有創建相應課程作業的項目才能修改它們,否則將返回403 PERMISSION_DENIED錯誤。您可以通過檢查Google課堂課程工作回覆中的associatedWithDeveloper屬性輕鬆確定課程作業項目是否與發出請求的開發者控制檯項目相關聯。

0

如果最終用戶不符合訪問先決條件,所有Classroom API方法可能會返回PERMISSION_DENIED (HTTP 403)錯誤。伴隨錯誤的消息包含一條錯誤消息,可幫助您確定原因並指導用戶採取適當的措施。

ProjectPermissionDenied表示請求嘗試修改與其他開發者控制檯項目關聯的資源。

可能的操作:表明您的應用程序無法發出所需的請求。它只能由創建資源的OAuth client ID的開發者控制檯項目創建。

1

我花了一段時間才弄明白這一點,但我認爲最好的方法是首先使用Google腳本或使用Classroom API創建課程作業(即作業或問題)。課程作業然後與正確的控制檯項目相關聯,並且您被清除以管理來自其上的提交。