소개

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

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

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

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

  2. 서드 파티 애플리케이션은 클래스룸 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에 필요한 유일한 쿼리 매개변수이지만, 마찬가지로 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
    • 교사 및 학생의 email 속성에 대한 읽기 액세스 권한을 제공합니다.

Pub/Sub 알림으로 명단 동기화

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

푸시 알림을 사용하려면 확인을 위해 제출할 필요가 없는 추가 범위 하나가 필요합니다.

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

푸시 알림이 포함된 명단 가져오기 워크플로를 요약한 다이어그램

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