소개

클래스룸과 서드 파티 도구를 모두 활용하는 교사는 여러 플랫폼에서 과정과 출석부를 설정해야 하는 어려움에 직면해 있습니다. 이는 CSV 업로드를 사용하거나 이메일을 하나씩 입력하여 수동으로 수행할 수 있습니다. 하지만 Classroom API를 사용하면 서드 파티 도구를 통해 API의 가장 일반적인 사용 사례인 출석부 가져오기와 통합하여 교사의 업무 부담을 줄일 수 있습니다.

출석부 가져오기를 사용하면 타사 플랫폼에서 교사 또는 관리자 권한으로 강의별로 강의의 메타데이터, 교사, 학생을 검색할 수 있습니다. 교사는 자신이 가르치는 과정의 세부정보를 검색할 수 있지만 관리자는 전체 도메인의 모든 과정의 세부정보에 액세스할 수 있습니다. 이러한 유연성 덕분에 개발자는 관리자 인증 정보를 사용하여 개별 교사 수준에서 또는 전체 도메인에서 클래스룸 출석부를 플랫폼에 원활하게 온보딩할 수 있습니다.

출석부 가져오기 통합의 기술적인 내용을 자세히 알아보기 전에 먼저 워크플로 예를 살펴보겠습니다.

  1. 서드 파티 애플리케이션에서 교사가 클래스룸 과정을 가져오는 옵션을 선택합니다.

  2. 서드 파티 애플리케이션에서 Classroom API를 통해 courses.list 메서드를 호출하면 모든 교사 과정과 함께 응답 JSON이 반환됩니다.

  3. JSON 응답에서 서드 파티 애플리케이션은 교사가 선택할 수 있도록 교육 과정 제목을 표시합니다. 다음 단계로 진행하려면 애플리케이션에서 과정 ID를 추적해야 합니다.

  4. 선택한 수업 ID를 사용하여 서드 파티 애플리케이션에서 students.listteachers.list 메서드를 호출하고 교사가 가져오기 여부를 확인할 수 있도록 웹사이트에 모든 이름을 표시합니다.

  5. 서드 파티 애플리케이션은 students.listteachers.list 응답 JSON에 반환된 이메일을 사용하여 사용자를 플랫폼에서 새로 가져온 과정에 참여하도록 사용자를 초대합니다.

API 탐색기를 사용하여 워크플로에서 언급된 각 메서드에 대해 정확히 어떻게 동작하는지 확인할 수 있습니다. 또한 이 가이드를 완료하기 전에 다음과 같은 미리 읽기를 수행하는 것이 좋습니다.

  1. 클래스룸 API로 강의 관리하기
  2. 학생 및 교사 관리

위에 설명된 출석부 가져오기 워크플로를 요약한 다이어그램

시작하기

클래스룸 출석부 가져오기의 세부사항을 구현하기 전에 API를 통해 검색해야 하는 강의와 사용자 정보를 결정해야 합니다. 참조 문서에서 사용 가능한 과정 메타데이터를 확인할 수 있지만 필요한 몇 가지 필수 입력란 또는 일반적인 필드는 아래에 요약되어 있습니다.

필드 사용
id 학생 또는 교사를 검색하는 API 요청에 필요합니다.
이름 사용자의 손쉬운 사용(웹사이트에 표시 등)을 위해 권장됩니다.
ownerId 도메인 전체 기준으로 가져올 때 과정의 기본 교사를 올바르게 식별할 때 필요합니다.

이 과정 정보는 위 워크플로의 courses.list 단계에서 가져옵니다. 이 요청에서 특정 요청 매개변수를 지정할 수 있습니다. 이 메서드에 필수는 없지만 몇 가지 권장되는 매개변수는 다음과 같습니다.

매개변수 사용
courseState 지정하지 않으면 API에서 6가지 과정 상태 모두의 과정을 반환합니다. 교사가 현재 사용 중인 과정을 검색하려면 ACTIVE을 지정하는 것이 좋습니다.
pageSize 자체 강의를 가져오는 교사의 경우 API 호출의 응답 시간을 줄이기 위해 작은 페이지 크기 (10 미만)를 지정하는 것이 좋습니다.
pageToken 페이징된 요청을 사용하는 경우 필수 항목입니다.
teacherId 도메인 관리자가 강의를 하는 경우가 많으므로 권장됩니다. 지정하지 않으면 요청에서 전체 도메인 교사의 강의를 반환합니다.
필드 API 호출의 응답 시간을 줄이는 것이 좋습니다.

앞서 가져온 과정 ID를 사용하여 이제 애플리케이션에서 해당 강의의 학생 및 공동 교사 목록을 가져올 수 있습니다. 이 과정 ID는 teachers.liststudents.list의 유일한 필수 쿼리 매개변수이지만 마찬가지로 pageSizefields 매개변수를 지정하여 API 호출의 응답 시간을 줄이는 것이 좋습니다.

학생교사 리소스에 사용 가능한 모든 필드는 해당 문서에서 찾을 수 있습니다. 가장 일반적으로 사용되고 일반적으로 필요한 두 가지 필드는 profile 필드에 있습니다. profile.nameprofile.emailAddress입니다.

필드 사용
profile.name 사용자의 손쉬운 사용(웹사이트에 표시 등)을 위해 권장됩니다.
profile.emailAddress 학생을 고유하게 식별하려는 애플리케이션에 필요합니다.

클래스룸에서 이러한 과정 또는 출석부 세부정보를 검색하고 사용하려면 애플리케이션에서 사용자에게 승인을 요청해야 합니다. 이 워크플로를 구현하는 데는 세 가지의 필수 범위가 있습니다.

  • https://www.googleapis.com/auth/classroom.courses.readonly
    • Google 클래스룸 과정에 대한 읽기 전용 액세스 권한을 제공합니다.
  • https://www.googleapis.com/auth/classroom.rosters.readonly
    • Google 클래스룸 과정 출석부 (교사 및 학생)에 대한 읽기 전용 액세스 권한을 제공합니다.
  • https://www.googleapis.com/auth/classroom.profile.emails
    • 교사와 학생의 이메일 속성에 대한 읽기 액세스 권한을 제공합니다.

Pub/Sub 알림과 로스터 동기화

학년이 진행됨에 따라 학생이 과목을 삭제하거나 추가하는 과정에서 출석부가 변경될 수 있습니다. Pub/Sub 알림을 추가하면 서드 파티 애플리케이션을 클래스룸 출석부와 동기화할 수 있습니다. 알림을 받으려면 Google Cloud Pub/Sub 주제를 설정한 후 Classroom API를 사용하여 주제를 등록합니다. 이 등록은 클래스룸이 지정된 피드에서 지정된 주제로 데이터를 전송하기 위한 요청입니다. 이 피드는 교사의 클래스룸 출석부와 다시 동기화하기 위한 이벤트 트리거가 됩니다.

푸시 알림을 사용하려면 인증을 위해 제출하지 않아도 되는 추가 범위가 필요합니다.

  • https://www.googleapis.com/auth/classroom.push-notifications
    • 앱이 푸시 알림 활동에 등록하도록 허용합니다.

푸시 알림으로 출석부 가져오기 워크플로를 요약한 다이어그램

클래스룸 푸시 알림과 통합하는 방법을 자세히 알아보려면 푸시 알림 관리 가이드를 참조하세요.