chrome.gcm으로 Firebase 클라우드 메시징 (FCM) 사용

chrome.gcm을 사용하여 최종 사용자에게 메시지를 주고받을 수 있습니다. Firebase 클라우드 메시징 (FCM)을 기반으로 하므로 설정해야 하는 외부 서비스를 사용합니다. 이 방법은 확장 프로그램에서 작동하는 데 필요한 모든 단계를 안내합니다.

chrome.gcm는 여전히 지원되지만 푸시 표준보다 10여 년 전에 만들어졌습니다. 일반적으로 확장 프로그램별 API가 아닌 웹 표준을 사용하는 것이 좋습니다. chrome.gcm를 사용해야 할 특별한 이유가 없다면 Push를 사용하는 것이 좋습니다.

기본 요건

chrome.gcm를 사용하려면 Firebase 계정을 설정해야 합니다.

Firebase.com 홈페이지
Firebase.com 홈페이지

계정을 만든 후에는 Firebase Console을 열고 사용할 기존 프로젝트를 선택하거나 확장 프로그램에 사용할 새 프로젝트를 만듭니다.

Firebase Console의 프로젝트 목록 스크린샷
Firebase Console의 프로젝트 목록

클라우드 메시징의 설정 페이지로 이동합니다.

Firebase 클라우드 메시징 설정 페이지의 스크린샷
Firebase 클라우드 메시징 설정 페이지

이 프로젝트에 기존 클라우드 메시징 계정이 있는 경우 나열된 숫자로 된 발신자 ID를 복사하는 것이 좋습니다.

클라우드 메시징을 사용 설정하지 않은 경우 Google Cloud 내부의 프로젝트에서 Firebase Cloud Messaging API를 사용 설정해야 합니다. 다음 이미지를 보면 Firebase 설정에서 이 페이지로 바로 연결되는 링크를 찾을 수 있습니다.

Google Cloud에서 Firebase Messaging API를 사용 설정하는 링크의 위치의 스크린샷입니다.
Firebase에서 Google Cloud 설정 링크 열기

사용 설정한 후 클라우드 메시징의 설정 페이지로 돌아가서 발신자 ID를 복사합니다.

chrome.gcm 구성

이제 Firebase의 발신자 ID를 만들었으므로 메시지를 리슨하도록 확장 프로그램을 구성할 수 있습니다. 먼저 확장 프로그램의 manifest.jsongcm 권한을 추가했는지 확인합니다.

  {
    "manifest_version": 3,
    ...
    "permissions": ["gcm"]

이제 chrome.gcm API에 액세스할 수 있습니다. chrome.gcm.register를 호출하여 푸시 메시지를 수신 대기하도록 등록할 수 있습니다.

메시지 리슨

확장 프로그램에서 발신자 ID를 등록하면 수신 메시지를 처리할 코드를 추가해야 합니다.

Firebase를 사용하지 않는 Firebase

chrome.gcm는 항상 Firebase를 거치지만 Firebase가 외부 푸시 메시징 공급업체의 프록시로 작동하도록 구성할 수 있습니다. 일반적으로 공급업체는 Chrome 확장 프로그램 지원을 명시적으로 나열하지만 Firebase의 기존 푸시 알림을 지원하는 공급업체는 모두 작동해야 합니다. 제공업체에 Firebase의 기존 푸시 알림 지원 기능이 포함되어 있으면 사용해 보세요. 문제가 발생하면 제공업체 지원팀은 적용되는 제한사항을 명확하게 설명할 수 있어야 합니다.

채널 및 주제

chrome.gcm에서 기존 Firebase Messaging API를 사용하고 있습니다. 이는 기존 API가 메시지 채널을 지원하지 않기 때문에 중요합니다. 푸시된 모든 메시지는 모든 클라이언트에 전달됩니다. 사용자의 확장 프로그램이 메시지의 하위 집합에만 관심이 있는 경우 직접 필터링해야 합니다.

Firebase는 무료 계정으로 시작하지만 특정 사용량 기준액을 초과하면 요금이 청구됩니다. 특정 그룹에 메시지를 보낼 계획이라면 클라이언트 측 필터링이 보장된 것보다 더 많은 비용이 발생할 수 있습니다. 개별 채널을 복제하는 여러 프로젝트를 만들어 이 문제를 해결할 수 있습니다(채널별로 하나의 프로젝트 및 하나의 발신자 ID). 모든 확장 프로그램이 여러 발신자 ID를 최대 100개까지 등록할 수 있습니다.

채널 지원이 필요하거나 Firebase를 통하지 않고 푸시 알림을 사용하려는 경우에는 Push API를 사용하면 됩니다.