소개

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

출석부 가져오기를 사용하면 서드 파티 플랫폼에서 교사 또는 관리자 권한을 사용하여 과정별로 과정의 메타데이터, 교사, 학생을 가져올 수 있습니다. 교사는 자신이 가르치는 과정의 세부정보를 가져올 수 있지만 관리자는 전체 도메인의 모든 과정에 대한 세부정보에 액세스할 수 있습니다. 이러한 유연성을 통해 개발자는 관리자 사용자 인증 정보를 사용하여 개별 교사 수준 또는 전체 도메인에서 플랫폼에 Classroom 명단을 원활하게 온보딩할 수 있습니다.

명단 가져오기 통합의 기술적 세부정보를 살펴보기 전에 먼저 워크플로 예를 검토해 보겠습니다.

  1. 서드 파티 애플리케이션에서 교사가 Classroom 수업을 가져오는 옵션을 선택합니다.

  2. 서드 파티 애플리케이션은 Classroom API를 통해 courses.list 메서드를 호출하며, 이 메서드는 모든 교사의 수업이 포함된 응답 JSON을 반환합니다.

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

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

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

워크플로에 언급된 각 메서드에 대해 API 탐색기를 사용하여 각 메서드의 작동 방식을 정확하게 확인할 수 있습니다. 이 가이드를 마치기 전에 다음 자료를 미리 읽어보는 것도 좋습니다.

  1. Classroom API로 수업 관리하기
  2. 학생 및 교사 관리

위에서 자세히 설명한 명단 가져오기 워크플로를 요약한 다이어그램

시작하기

클래스룸 명단 가져오기의 세부사항을 구현하기 전에 API를 통해 가져와야 하는 과정 및 사용자 정보를 결정해야 합니다. 참고 문서에서 사용할 수 있는 과정 메타데이터를 확인할 수 있지만 필요한 필수 또는 일반 필드는 아래에 요약되어 있습니다.

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

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

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

이전에 가져온 과정 ID를 사용하여 애플리케이션에서 해당 과정의 학생 및 공동 교사 목록을 가져올 수 있습니다. 이 과정 ID는 teachers.liststudents.list에 필요한 유일한 쿼리 매개변수이지만, API 호출의 응답 시간을 줄이기 위해 pageSizefields 매개변수를 지정하는 것도 고려해 볼 수 있습니다.

학생교사 리소스에 사용할 수 있는 모든 필드는 각 문서에서 확인할 수 있습니다. 가장 일반적으로 사용되고 일반적으로 필요한 두 필드는 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
    • 앱이 푸시 알림 활동을 등록하도록 허용합니다.

푸시 알림을 사용한 명단 가져오기 워크플로를 요약한 다이어그램

클래스룸 푸시 알림과 통합하는 방법에 관한 자세한 내용은 푸시 알림 관리 가이드를 참고하세요.