FCM є зворотно сумісним з GCM. Етапи налаштування FCM на AWS ідентичні процедурі налаштування GCM, і (принаймні на даний момент) FCM прозоро працює з GCM та SNS щодо конфігурації на стороні сервера.
Однак якщо ви надсилаєте data
корисні навантаження на пристрій Android, вони не оброблятимуться, якщо ви не застосуєте службу на стороні клієнта, яка розширюється FirebaseMessagingService
. Генератор повідомлень JSON за замовчуванням на консолі AWS надсилає data
повідомлення, які ваш додаток ігноруватиме, якщо не буде реалізована вищезазначена служба. Щоб обійти це для первинного тестування, ви можете надати власний notification
корисний набір, який буде отримувати ваш пристрій (якщо ваша програма не на першому плані)
Існує інструкція з перенесення GCM-FCM від Google, однак зміни, які потрібно внести, переважно на стороні програми.
Для тестування GCM / FCM у вашому додатку за допомогою SNS потрібно виконати наступні кроки:
- Створіть програму платформи в SNS , вибравши Google Cloud Messaging (GCM) як платформу push-сповіщень і надавши свій ключ API сервера в полі ключа API .
- Виберіть додаток платформи та натисніть кнопку Створити кінцеву точку платформи .
- Надайте InstanceID ( маркер пристрою ), згенерований вашим додатком. Ви повинні розширити
FirebaseInstanceIDService
та перевизначити onTokenRefresh
метод, щоб побачити це у вашому додатку Android. Після цього видаліть та переінсталюйте програму, і ваш маркер слід надрукувати на консолі налагодження в Android Studio при першому завантаженні.
- Натисніть кнопку Додати кінцеву точку .
- Клацніть на посилання ARN для своєї програми на платформі.
- Виберіть нещодавно створену Кінцеву точку для свого пристрою та натисніть кнопку Опублікувати до кінцевої точки .
- Виберіть Формат повідомлень JSON і натисніть кнопку генератора повідомлень JSON .
- Введіть тестове повідомлення та натисніть кнопку « Створити JSON »
- Тепер настає "частина гача".
Повідомлення, яке генерує SNS, матиме такий вигляд:
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
Як ми вже згадували раніше, data
корисне навантаження буде проігноровано, якщо жодна послуга для їх отримання не реалізована. Ми хотіли б протестувати, не писаючи занадто багато коду, тому замість цього нам слід надіслати notification
корисне навантаження. Для цього просто змініть повідомлення JSON на таке:
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
Після цього переконайтеся, що ваша програма не працює на пристрої, і натисніть кнопку Опублікувати повідомлення . Тепер ви повинні побачити спливаюче сповіщення на вашому пристрої.
Звичайно, ви можете зробити все це програмно через Amazon SNS API, однак усі приклади, здається, використовують data
корисне навантаження, тому вам потрібно це пам’ятати та генерувати корисне навантаження, яке відповідає вашому випадку використання.