FCM은 GCM과 역 호환됩니다. AWS에서 FCM을 설정하는 단계는 GCM 설정 절차 와 동일 하며 (적어도 현재는) FCM이 서버 측 구성과 관련하여 GCM 및 SNS와 투명하게 작동합니다.
그러나data
페이로드를 Android 장치 로 보내는 경우 확장 되는 클라이언트 측 서비스 를 구현하지 않으면 페이로드가 처리되지 않습니다 FirebaseMessagingService
. AWS 콘솔의 기본 JSON 메시지 생성기 data
는 앞서 언급 한 서비스가 구현되지 않는 한 앱에서 무시되는 메시지를 보냅니다 . 초기 테스트를 위해이 문제를 해결하기 위해 notification
장치에서 수신 할 사용자 지정 페이로드를 제공 할 수 있습니다 (앱이 포 그라운드에 있지 않은 경우).
있다 GCM-FCM 마이그레이션 지침 Google에서 제공하는 그러나 당신이해야 변경 사항이 앱 측에 주로있다.
SNS를 통해 앱에서 GCM / FCM을 테스트하기 위해 따라야하는 단계는 다음과 같습니다.
- 크리에이트 SNS에서 플랫폼 응용 프로그램 은 AS Google 클라우드 메시징 (GCM)를 선택, 푸시 알림 플랫폼 , 그리고 제공하는 서버 API 키 에서 API 키 필드.
- 플랫폼 애플리케이션을 선택하고 플랫폼 엔드 포인트 생성 버튼을 클릭합니다.
- 앱에서 생성 한 InstanceID ( Device Token )를 제공합니다 . Android 앱 내에서이를 보려면 메서드를 확장
FirebaseInstanceIDService
하고 재정의 해야합니다 onTokenRefresh
. 이 작업을 마치면 , 제거를하고 응용 프로그램을 다시 설치하고 토큰은 첫 번째 부팅에 안드로이드 Studio에서 디버그 콘솔에 인쇄해야합니다.
- 엔드 포인트 추가 버튼을 클릭 합니다.
- 플랫폼 애플리케이션에 대한 ARN 링크를 클릭하십시오.
- 장치에 대해 새로 생성 된 엔드 포인트를 선택하고 엔드 포인트에 게시 버튼을 클릭합니다.
- json으로 선택 메시지 형식을 하고 클릭 JSON 메시지 생성 버튼을 클릭합니다.
- 테스트 메시지를 입력하고 JSON 생성을 클릭합니다. 버튼을 합니다.
- 이제 "gotcha 부분"이 나옵니다.
SNS에서 생성되는 메시지는 다음과 같은 형식입니다.
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
앞서 언급했듯이 data
페이로드를 수신 할 서비스가 구현되지 않은 경우 페이로드는 무시됩니다. 너무 많은 코드를 작성하지 않고 테스트하고 notification
싶으 므로 대신 페이로드를 보내야합니다 . 이렇게하려면 JSON 메시지를 읽기로 변경하면됩니다.
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
이 작업을 마치면 앱이 장치에서 실행되고 있지 않은지 확인하고 메시지 게시 버튼을 누르십시오. 이제 장치에 알림 팝업이 표시됩니다.
물론 Amazon SNS API를 통해이 모든 작업을 프로그래밍 방식으로 수행 할 수 있지만 모든 예제는 data
페이로드 를 사용하는 것으로 보이 므로이를 염두에두고 사용 사례에 적합한 페이로드를 생성해야합니다.