ドキュメントでは、REST API なので、UrlFetchApp クラスを使うのか? とか思ってしまいますが、そもそも それだと auth が必要なのでまだ試してしません。 で、そんな事をしなくてもそれぞれの REST の クラスのメソッドに引数を渡す形で実行できます。 但し、Classroom Service が拡張なので、スクリプトエディタのサービスの追加より API を実行可能にしておく必要があります。 以下のサンプルでは、Classroom の一覧取得後に目的の id を確認して固定で投稿しています。
function myFunction() { // ************************************************** // Classroom 一覧 // ************************************************** var response = Classroom.Courses.list(); var courses = response.courses; for (i = 0; i < courses.length; i++) { Logger.log('%s (%s)', courses[i].name, courses[i].id); } // ************************************************** // POST する JSON // ************************************************** var target = "35126354603"; var data = { "courseId" : target, "materials": [ { "link": { "url": "https://news.google.com/?hl=ja&tab=rn1&gl=JP&ceid=JP:ja", "title": "Google ニュース", "thumbnailUrl": "" } } ], "text": "Google Apps Script による Classroom への投稿", "assigneeMode": "ALL_STUDENTS", "state": "PUBLISHED" }; Classroom.Courses.Announcements.create(data, target); }
Logger.log の代わりに Gmail で自分のアドレスに送信したほうが良い場合もあります。
// The code below will send an email with the current date and time. var now = new Date(); GmailApp.sendEmail("mike@example.com", "current time", "The time is: " + now.toString());
関連する記事 Google Classroom のテーマ画像のサイズと既存画像をテーマ画像として使用してみた手順 courses.announcements.create リファレンス
|
【GASの最新記事】