【GAS】GoogleAppsScript를 이용하여 GoogleClassroom에 코스를 작성한다(Courses.create)

안녕하세요! GoogleAppsScript를 사용한 업무 효율화에 열중하는 초보자 프로그래머, 타로입니다.

오늘은 GoogleAppsScript(GAS)를 이용해 Google Classroom에서 코스를 만드는 방법에 대해 써 가고 싶습니다.

초보자용입니다만, javascript의 기본적인 룰은 눌러 두는 것이 이해하기 쉽다고 생각하기 때문에, 아직의 분은 Progate 로 바삭바닥과 javascript의 문법을 학습해 보세요.

또, 초보자가 수당 점차 코드를 써 보고 막힌 곳이나 그 때의 마음의 목소리 등도 힘들게 쓰고 있습니다. 방법만 살짝 알고 싶은 분은, 마지막 요약 를 참조해 주세요.

또, ReferenceError: Classroom is not defined 라고 에러가 나 버린 분은, 이 기사 를 참고로 해 봐 주세요.
그럼, 조속히 시도해 봅시다!

create 메소드를 우선 사용해 보려고 하지만 전혀 잘 안 된다



공식 문서 보다는, 우선 create 메소드가 있으므로 보자 보아서 사용해 본다.

function createCourse() {
  Classroom.Courses.create();
}
Classroom.Courses.create 는 아니고, Classroom.create 그럼 안되는 이유는 잘 모릅니다 (확실히 공식 문서에는 그렇게 써 있습니다만, 왜인지는 이해하고 있지 않다).

당연하지만 오류가 발생했습니다.
Exception: Invalid number of arguments provided. Expected 1-2 only
createCourse @ コード.gs:2

아무래도, 무효인 번호(=Invalid number)가 지정되어 있는 것 같다. 이만큼 읽어도 잘 모르겠다. 단지, 어떻게 봐도 파라미터가 부족할 것 같기 때문에, create의 인수에 무언가를 지정하지 않으면 안 되겠지~라고 추측.

클래스룸 공식 문서 를 보면, 코스에 지정할 수 있는 인수가 이렇게 많습니다. . .
{
  "id": string,
  "name": string,
  "section": string,
  "descriptionHeading": string,
  "description": string,
  "room": string,
  "ownerId": string,
  "creationTime": string,
  "updateTime": string,
  "enrollmentCode": string,
  "courseState": enum (CourseState),
  "alternateLink": string,
  "teacherGroupEmail": string,
  "courseGroupEmail": string,
  "teacherFolder": {
    object (DriveFolder)
  },
  "courseMaterialSets": [
    {
      object (CourseMaterialSet)
    }
  ],
  "guardiansEnabled": boolean,
  "calendarId": string
}

이 정보, 전부 넣지 않으면 안 되는 거야? ? ?
그러고 보니 조금 오류 메시지에Expected 1-2 only라고 써 있었으므로, 1, 2개 넣으면 좋을지도 모릅니다.

인수를 몇개 지정+newCourse 메소드를 우선 사용해 본다



클래스의 이름(name)과 ownerID(ownerId)만을 지정하고 있다 이 기사

function createCourse() {
  //ひとまず新しいコースを作成
  var course = Classroom.newCourse();

  //以下、コースの情報を追記
  course.name = 'GASテスト用クラス';
  course.ownerId = '××××@gmail.com';//ご自身のGmailアドレスを入力してください。 

  // 上記で作成したコースをクラスルームに作成
  Classroom.Courses.create(course);
}

실행해 보면,,, 무려 새로운 클래스가 작성되고 있었습니다! ! !


여기까지 도착하는데 어젯밤부터 오늘 아침에 걸쳐 3시간 이상 조사하고 있었으므로 감동입니다! ! ! (처음에도 뭘 하고 있습니다만 저는 프로그래밍 초보자입니다...)

그런데, 덧붙여서 코스의 이름만으로도 작성할 수 있는지 시험해 봅시다.
function createCourse() {
  //ひとまず新しいコースを作成
  var course = Classroom.newCourse();

  //以下、コースの情報を追記
  course.name = 'コースの名前だけで作成';

  // 上記で作成したコースをクラスルームに作成
  Classroom.Courses.create(course);
}

예, 오류가 발생했습니다.

오류 내용은 다음과 같습니다.GoogleJsonResponseException: API call to classroom.courses.create failed with error: course.ownerId: You must specify an ownerIdownerId는 필수인 것 같습니다.

그럼 ownerId만으로 작성할 수 있는 것도 시도해 봅시다.
function createCourse() {
  //ひとまず新しいコースを作成
  var course = Classroom.newCourse();

  //以下、コースの情報を追記
  course.ownerId = '××××@gmail.com';//ご自身のGmailアドレスを入力

  // 上記で作成したコースをクラスルームに作成
  Classroom.Courses.create(course);
}

이것도 오류가 발생했습니다.
GoogleJsonResponseException: API call to classroom.courses.create failed with error: course.name: Course name must be specified.코스의 이름도 필수인 것 같다. 즉, name과 ownerId를 지정하면 코스를 작성할 수 있는 것 같습니다.

요약 - GoogleClassroom에서 코스를 만드는 방법



GoogleClassroom에서 새 코스를 만들려면,
①Classroom.newCourse에서 코스 만들기
② name과 ownerId의 정보 추가
③Classroom.Courses.create 실행
위의 방법으로 할 수 있습니다. 코드는 다음
function createCourse() {
  //新しいコースを作成
  var course = Classroom.newCourse();

  //nameとownerIdを指定
  course.name = 'コース名';
  course.ownerId = '××××@gmail.com';//オーナーにする人のGmailアドレスを入力

  // 上記で作成したコースをクラスルームに作成
  Classroom.Courses.create(course);
}

이상, 참고가 되면 기쁩니다. Google Classroom API는 일본어의 정보가 적기 때문에, 앞으로도 여러가지 트라이 해 본 결과를 기사에 써 가고 싶습니다!

좋은 웹페이지 즐겨찾기