見出し画像

GAS×Classroom②作成したクラスのID/DriveフォルダのIDを取得|イチからDX


前回の記事はこちら

𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧


今回やりたい事

前回はGASで新しいクラスの作成を行いました。本記事では今後の作業の前準備として、新しく作成したクラスのID/URL、クラスのDriveフォルダID/URLをそれぞれ取得します。また、URLはスプレッドシートに書き出してGASを実行した後にアクセスしやすくしたいと思います。


新しく作成したクラスのID/URL、
クラスのDriveフォルダID/URLの取得と書き出し

GAS実行後のスプレッドシートです。B8,B9セルにURLが入力されるようになりました。

今回追加したコード

※前回までのコードは省略しています

  //作成したクラスルームのID取得
  const newroomID = newroom.id;
  Logger.log(newroomID);  

  //作成したクラスルームのURL取得
  const newroomURL = newroom.alternateLink;
  Logger.log(newroomURL);  
   //スプレッドシートに書き出し
   sheet.getRange('B8').setValue(newroomURL); //セル番地

  //作成したクラスルームのドライブフォルダ情報取得
  const Drive = newroom.teacherFolder;
   //ID取得
   const Drive_ID = Drive.id;
   Logger.log(Drive_ID); 
   //IDをURLにしてスプレッドシートに書き出し
   const Drive_URL = 'https://drive.google.com/drive/folders/' + Drive_ID;
   sheet.getRange('B9').setValue(Drive_URL); //セル番地

補足説明

クラスのIDは後々コンテンツを投稿する際に使うと思うのでここで一緒に取得しておきました。

  //作成したクラスルームのID取得
  const newroomID = newroom.id;
  Logger.log(newroomID);  

クラスIDからはURLを作れなさそうでしたので、alternateLinkを使って別途取得しスプレッドシートへ書き出しています。

  //作成したクラスルームのURL取得
  const newroomURL = newroom.alternateLink;
  Logger.log(newroomURL);  
   //スプレッドシートに書き出し
   sheet.getRange('B8').setValue(newroomURL); //セル番地

Driveフォルダに関してはIDからURLが作れますので、IDを取得したのちにURLの形にしてスプレッドシートへ書き出しています。

  //作成したクラスルームのドライブフォルダ情報取得
  const Drive = newroom.teacherFolder;
   //ID取得
   const Drive_ID = Drive.id;
   Logger.log(Drive_ID); 
   //IDをURLにしてスプレッドシートに書き出し
   const Drive_URL = 'https://drive.google.com/drive/folders/' + Drive_ID;
   sheet.getRange('B9').setValue(Drive_URL); //セル番地
(使い回しの画像ですが)〜folders/の後がフォルダのIDになっています

詳細は公式リファレンスのResource: Courseのページを参照ください。

※今回ご紹介したのはあくまで作りたてのクラスのID等を取得するためのコードですので、既存のクラスのIDを取得したい場合には少し異なってくるかと思います。


現在までのコード全体像

前回までのコードに今回ご紹介したコードを追加しました。

function workshop() {

//スプレッドシートから情報取得
  //開いているスプレッドシート取得
  const spreadsheet = SpreadsheetApp.getActive();
  
  //該当シート指定
  const sheet = spreadsheet.getSheetByName('入力シート'); //シート名

  //会社名を取得
  const company = sheet.getRange('B1').getValue(); //セル番地
  Logger.log(company);

  //プログラム名取得
  const program = sheet.getRange('B2').getValue(); //セル番地
  Logger.log(program);  

  //クラスの説明取得
  const memo = sheet.getRange('B3').getValue(); //セル番地
  Logger.log(memo);  

  //教師1のメールアドレス
  const teacher = sheet.getRange('B5').getValue(); //セル番地
  Logger.log(teacher);  

//クラス作成
  //クラスルーム生成に必要な各要素の指定
  const course = Classroom.newCourse();
    course.name = program; //部屋の名前(必須項目)
    course.ownerId = teacher; //オーナー(必須項目)
    course.section = company; //セクション
    course.description = memo; //クラスの説明
    course.courseState = 'ACTIVE'; //コースの状態指定
  //クラスルーム生成
  const newroom = Classroom.Courses.create(course);

  //作成したクラスルームのID取得
  const newroomID = newroom.id;
  Logger.log(newroomID);  

  //作成したクラスルームのURL取得
  const newroomURL = newroom.alternateLink;
  Logger.log(newroomURL);  
   //スプレッドシートに書き出し
   sheet.getRange('B8').setValue(newroomURL); //セル番地

  //作成したクラスルームのドライブフォルダ情報取得
  const Drive = newroom.teacherFolder;
   //ID取得
   const Drive_ID = Drive.id;
   Logger.log(Drive_ID); 
   //IDをURLにしてスプレッドシートに書き出し
   const Drive_URL = 'https://drive.google.com/drive/folders/' + Drive_ID;
   sheet.getRange('B9').setValue(Drive_URL); //セル番地


さいごに

DriveフォルダのURLはalternateLinkで取得できるはず(→詳細こちら)なのですが上手く動いてくれませんでいした。IDがあればURLは作れるので深追いしませんでしたが、理由は分からないままです😅

次回からはコンテンツの投稿(授業の中身)に挑戦の予定です!
それではまたお会いしましょう〜🐰


𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧
前回の記事はこちら

シリーズ一覧はこちら


𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧𖡼.𖤣𖥧

いいなと思ったら応援しよう!