사용자가 Google Meet에서 클래스룸을 사용 중인가요? Google Meet에서 학생의 참석 여부를 확인하는 방법 관련 Apps Script 빠른 시작을 확인하세요.

Classroom API의 푸시 알림

Registrations 컬렉션의 메서드를 사용하여 클래스룸의 데이터가 변경될 때 알림을 받을 수 있습니다.

이 문서에서는 푸시 알림을 수신하는 방법에 대한 간단한 안내와 함께 개념 개요를 제공합니다.

클래스룸 푸시 알림 개요

클래스룸 API 푸시 알림 기능을 사용하면 클래스룸 API를 사용하는 애플리케이션에서 클래스룸의 데이터가 변경될 때 알림을 구독할 수 있습니다. 알림은 일반적으로 몇 분 내에 Cloud Pub/Sub 주제로 전달됩니다.

푸시 알림을 받으려면Cloud Pub/Sub 주제 설정 주제를 만들 때 해당 주제의 이름을 제공하고등록 적합한피드 알림입니다.

다음은 이 문서에서 사용되는 주요 개념에 대한 정의입니다.

  • 목적지는 알림이 전송되는 위치입니다.
  • 피드는 타사 애플리케이션이 구독할 수 있는 알림 유형입니다. 예: '교육과정 1234의 출석부'
  • 등록은 특정 피드의 알림을 대상으로 전달하도록 Classroom API에 지시합니다.

피드 등록을 만들면 등록의 Cloud Pub/Sub 주제가 만료될 때까지 해당 피드의 알림을 받습니다. 등록은 일주일 동안 지속되지만 registrations.create()에 동일한 요청을 수행하여 만료되기 전에 언제든지 연장할 수 있습니다.

Cloud Pub/Sub 주제는 등록을 만들 때 사용자가 제공하는 사용자 인증 정보로 볼 수 있는 리소스에 대한 알림만 수신합니다. 예를 들어 사용자가 애플리케이션에서 권한을 취소하거나 교사의 권한을 삭제하면 알림이 더 오래 전송됩니다.

피드의 유형

현재 Classroom API에는 다음 세 가지 유형의 피드가 있습니다.

  • 각 도메인에는 도메인 출석부 변경사항이 있습니다. 그러면 학생과 교사가 해당 도메인의 강의에 참여할 때 알림이 전송됩니다.
  • 각 과정에는 과정 출석부 출석부 피드가 있습니다. 이 피드는 학생과 교사가 해당 강의에 들어오고 나갈 때 알림을 노출합니다.
  • 각 과정에는 과정 과정 변경사항 피드가 있습니다. 이 피드는 해당 수업에서 수업 과제 또는 학생 제출물 객체가 생성되거나 수정될 때 알림을 노출합니다.

Cloud Pub/Sub 주제 설정

알림은 Cloud Pub/Sub 주제로 전송됩니다. Cloud Pub/Sub에서 웹훅이나 구독 엔드포인트를 폴링하여 알림을 받을 수 있습니다.

Cloud Pub/Sub 주제를 설정하려면 다음을 수행해야 합니다.

  1. Cloud Pub/Sub 기본 요건을 충족해야 합니다.
  2. Cloud Pub/Sub 클라이언트 설정
  3. Cloud Pub/Sub 가격 책정을 검토하고 Developer Console 프로젝트에 결제를 사용 설정합니다.
  4. 명령줄 도구(간단한 프로그래매틱 방식의 경우)를 통해 개발자 콘솔에서 Cloud Pub/Sub 주제를 만듭니다. 사용) 또는 Cloud Pub/Sub API를 사용하면 됩니다. Cloud Pub/Sub는 일부 주제만 허용하므로 하나의 주제를 사용하여 모든 알림을 수신하면 애플리케이션이 다음과 같을 때 확장 문제가 발생하지 않습니다. 인기 있는

  5. Cloud Pub/Sub에서 구독을 만들어 Cloud Pub/Sub에 알림 전달 방법을 알립니다.

  6. 마지막으로 푸시 알림을 등록하기 전에 주제에 게시할 푸시 알림 서비스 계정(classroom-notifications@system.gserviceaccount.com) 권한을 부여해야 합니다.

참고: 푸시 알림 서비스 계정에 Cloud Pub/Sub 주제에 게시할 수 있는 권한을 부여하면 Play Console 프로젝트에서 요청할 수 있는 사용자가 존재 여부를 확인하고 { 101}알림입니다. 많은 애플리케이션이 클라이언트 측에 OAuth 클라이언트 ID를 저장하므로 최종 사용자는 Play Console 프로젝트에서 요청할 수 있습니다. 이 경우에 해당하고, 최종 사용자가 Cloud Pub/Sub 주제에 원치 않는 알림을 보내거나 푸시 알림에 사용하는 Cloud Pub/Sub 주제의 이름을 알고자 하는 경우, 다음을 고려해야 합니다. 다른 개발자 콘솔 프로젝트의 푸시 알림 등록

알림을 받도록 애플리케이션 등록

Classroom API 푸시 알림 서비스 계정이 게시할 수 있는 주제가 있으면 registrations.create() 메서드를 사용하여 알림을 등록할 수 있습니다. registrations.create() 메서드는 푸시 알림 서비스 계정으로 제공된 Cloud Pub/Sub 주제에 연결할 수 있는지 확인합니다. 푸시 알림 서비스 계정이 주제에 도달할 수 없으면(예: 주제가 존재하지 않거나 주제에 관한 게시 권한을 부여하지 않은 경우) 메서드가 실패합니다.

인증

다른 모든 Classroom API 호출과 마찬가지로 registrations.create() 호출은 승인 토큰으로 승인되어야 합니다. 이 인증 토큰에는 푸시 알림 범위(https://www.googleapis.com/auth/classroom.push-notifications)와 전송 중인 알림에 대한 데이터를 보는 데 필요한 모든 범위가 포함되어야 합니다.

  • 출석부 변경 피드의 경우 이는 Roster 범위 또는 이상적인 읽기 전용 변형(https://www.googleapis.com/auth/classroom.rosters.readonly 또는 https://www.googleapis.com/auth/classroom.rosters)을 의미합니다.
  • 수업 과제 변경 피드의 경우 수업 과제 범위의 '학생' 버전 또는 읽기 전용 변형(https://www.googleapis.com/auth/classroom.coursework.students.readonly 또는 https://www.googleapis.com/auth/classroom.coursework.students)이 이상적입니다.

알림을 전달하려면 애플리케이션은 필요한 범위가 있는 승인된 사용자의 OAuth 권한을 유지해야 합니다. 사용자가 애플리케이션 연결을 해제하면 알림이 중단됩니다. 현재는 이 문제에 도메인 전체 권한 위임이 지원되지 않습니다. 도메인 전체 위임된 권한만 사용하여 알림을 등록하려고 하면 '@MissingGrant 오류'가 발생합니다.

알림 수신

알림은 JSON으로 인코딩되며 다음을 포함합니다.

  • 변경된 리소스가 포함된 컬렉션의 이름입니다. 출석부 변경사항 알림에는 courses.students 또는 courses.teachers입니다. 수업 과제 변경사항의 경우 courses.courseWork 또는 courses.courseWork.studentSubmissions입니다.
  • 지도에서 변경된 리소스의 식별자입니다. 이 맵은 인수를 적절한 리소스의 get 메서드와 일치시키도록 설계되었습니다. 출석부 변경사항 관련 알림은courseIduserId 필드에 입력되며 수정되지 않은 상태로 Course.students.get() 또는Course.Teacherss.get() 마찬가지로, Course.courseWork 컬렉션 변경사항도 courseIdid 수정될 수 없는 필드는 Course.courseWork.get() course.courseWork.studentSubmissions 컬렉션의 변경사항에는courseId ,courseWorkId ,id 수정될 수 없는 필드는 Course.courseWork.studentSubmissions.get() 에서 확인할 수 있습니다.

다음 코드 스니펫은 샘플 알림을 보여줍니다.

{
  "collection": "courses.students",
  "eventType": "CREATED",
  "resourceId": {
    "courseId": "12345",
    "userId": "45678"
  }
}

알림에는 또한 알림을 유발한 등록의 식별자가 포함된 registrationId 메시지 속성이 있으며, 이 속성은 registrations.delete()와 함께 사용할 수 있습니다. 알림을 등록 취소합니다.