その課題を作成したときと同じ OAuthクライアント(Developer Console Project)のみのようです
そのため
提出物に変更を加えるコードを記述した OAuthクライアントと
その提出物に紐づく課題を作成した OAuthクライアントが
同じかどうか確認する方法を知りたくて試しました
基本的には同じ Apps Script のプロジェクトで
課題の作成と提出物の読み書きを行えばよさそう
courseId, courseWorkId を自身の環境に合わせて書き換えて
checkDeveloperAssociation() を実行すると
ture か false が返ってくるはずですが
手元の環境では true か undefined が返ってきました
Code.gs
function checkDeveloperAssociation() {
const courseId = '699141862609';
const courseWorkId = '767848967890';
// Advanced Service で取得
const cw = Classroom.Courses.CourseWork.get(courseId, courseWorkId);
// associatedWithDeveloper が true なら「同じクライアント」で作成された課題
Logger.log('associatedWithDeveloper: ' + cw.associatedWithDeveloper);
}
true が返ってきたら同じOAuthクライアントということらしい
別の Apps Script プロジェクトで同じコードを実行すると
undefined が返ってきたので OAuthクライアントが異なると考えられる
Tips
提出物を返却する場合は上記のコードを実行して associatedWithDeveloper が true でも
404 エラーが出ました
この場合は
UrlFetch で REST API に直接リクエストを送ることでエラーを回避できました
Google Classroom APIで提出物の返却を試してみる
Reference
生徒の回答を管理する
https://developers.google.com/workspace/classroom/guides/manage-coursework?hl=ja#manage_student_responses
Google Classroom APIで提出物の返却を試してみる
Reference
生徒の回答を管理する
https://developers.google.com/workspace/classroom/guides/manage-coursework?hl=ja#manage_student_responses