1. Pengantar
Dibandingkan dengan FCM legacy API, FCM HTTP v1 API menyediakan model otorisasi yang lebih aman menggunakan token akses berumur pendek. Langkah-langkah untuk membuat token akses untuk FCM v1 API sangat berbeda dengan langkah-langkah untuk API lama.
Codelab ini akan memandu Anda melalui proses penyiapan sisi klien dan server untuk mengaktifkan pengiriman notifikasi push ke aplikasi Android menggunakan FCM HTTP v1 API. Bagian ini menyoroti langkah utama pembuatan kredensial untuk API v1.
Informasi selengkapnya dapat ditemukan di:
Prasyarat
- Pemahaman dasar tentang pengembangan Java dan Android
Yang akan Anda pelajari
- Langkah-langkah mendetail penyiapan sisi klien dan server untuk mengaktifkan pengiriman notifikasi push ke aplikasi Android Anda menggunakan FCM HTTP v1 API
- Pembuatan kredensial untuk HTTP v1 API menggunakan akun layanan
- Mengirim pesan pengujian melalui HTTP v1 API
Yang Anda butuhkan
Versi stabil terbaru Android Studio
Salah satu perangkat berikut:
- Perangkat Android fisik yang terhubung ke komputer Anda
- Emulator Android (lihat Menjalankan aplikasi di Android Emulator)
Lingkungan pengembangan Java atau editor kode pilihan Anda
2. Penyiapan project Firebase dan aplikasi Android
Di akhir codelab, Anda akan dapat mengirim pesan ke aplikasi menggunakan Firebase Cloud Messaging. Sebelum melakukannya, Anda harus membuat project Firebase. Codelab ini juga menyediakan aplikasi Android yang berisi contoh kode untuk diintegrasikan dengan FCM.
Penyiapan project Firebase
- Ikuti "Langkah 1: Buat Project Firebase" untuk membuat project Firebase Anda sendiri untuk codelab ini.
Penyiapan aplikasi Android
Aplikasi Android contoh yang disediakan dalam codelab ini sudah terintegrasi dengan FCM. Setelah dimulai, aplikasi akan mendaftar ke server FCM dan berlangganan topik. Pada langkah-langkah selanjutnya dalam codelab ini, Anda akan mengirim pesan topik ke topik dan aplikasi Anda akan menerimanya.
- Download contoh panduan memulai Firebase Android.
- Impor project di https://github.com/firebase/quickstart-android/tree/master/messaging ke Android Studio.
- Daftarkan aplikasi di Firebase Console. Nama aplikasinya adalah
com.google.firebase.quickstart.fcm
. Daftarkan aplikasi ini di project Firebase Anda dengan mengikuti langkah-langkah di bagian "Langkah 2: Daftarkan aplikasi Anda ke Firebase". - Ikuti bagian 1 dari "Langkah 3: Tambahkan file konfigurasi Firebase" untuk mendownload
google-services.json
dan menambahkannya ke project Anda. Buat dan jalankan project.
3. Menyiapkan server aplikasi
Setelah aplikasi disiapkan, Anda harus mendownload contoh kode sisi server untuk mengirim pesan ke aplikasi menggunakan FCM v1 API. Kode ini memuat kredensial API (dijelaskan di bagian berikutnya) untuk membuat token akses. Kemudian, pesan akan dikirim ke aplikasi Anda menggunakan pesan topik FCM.
- Impor kode server awal dengan mendownload project GitHub. Project "messaging" adalah project Java berbasis Gradle dengan dependensi pada SDK firebase-admin, yang menyediakan fungsi untuk mengirim pesan.
Detail selengkapnya tentang cara kerja server aplikasi dengan FCM dapat ditemukan dalam dokumen Lingkungan server dan FCM Anda.
4. Mendapatkan kredensial v1
FCM HTTP v1 API menggunakan token akses berumur pendek sesuai dengan model keamanan OAuth2. Dibandingkan dengan kunci API statis yang digunakan di FCM API lama, token akses jangka pendek lebih rentan terhadap risiko kebocoran kredensial. Bagian ini menjelaskan langkah-langkah untuk membuat kredensial guna membuat token akses yang digunakan dalam memanggil API.
- Siapkan akun layanan Firebase agar Firebase Admin SDK dapat mengizinkan panggilan ke FCM API. Buka Project Settings di Firebase console, lalu pilih tab Service accounts. Klik Generate new private key untuk mendownload cuplikan konfigurasi.
- Di project GitHub yang didownload, ganti nama file yang didownload menjadi
service-account.json
dan salin ke jalurmessaging/
project. - Metode
getAccessToken()
(ditunjukkan di bawah) di classMessaging.java
akan membuat token OAuth2 yang valid selama 1 jam.
private static String getAccessToken() throws IOException { GoogleCredentials googleCredentials = GoogleCredentials.fromStream(new FileInputStream("service-account.json")).createScoped(Arrays.asList(SCOPES)); googleCredentials.refresh(); return googleCredentials.getAccessToken().getTokenValue(); }
- Ubah metode utama untuk menambahkan baris berikut:
public static void main(String[] args) throws IOException { System.out.println(getAccessToken()); ... }
- Buka direktori project/ messaging di terminal Anda, lalu ketik:
./gradlew run -Pmessage=common-message
untuk mencetak token OAuth2.
Informasi selengkapnya dapat ditemukan di Mengizinkan permintaan kirim.
5. Mengirim pesan dengan REST API
Sekarang Anda siap mengirim pesan melalui HTTP v1 API. Ikuti langkah berikut:
- Untuk menambahkan token akses ke header permintaan HTTP:
- Tambahkan token sebagai nilai header Authorization dalam format
Authorization: Bearer <access_token>
- Buat permintaan HTTP ke FCM v1 API menggunakan curl:
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $OAuth2_token" -H "X-GFE-SSL: yes" -d "{\"message\": {\"topic\": \"$topic_name\", \"notification\": {\"title\": \"breaking news\", \"body\": \"This is breaking news\"}}}" https://fcm.googleapis.com/v1/projects/[PROJECT_NAME]/messages:send
$topic_name
di atas dapat ditemukan dalam kode aplikasi Android yang disebutkan dalam penyiapan project Firebase dan aplikasi Android. Secara default, nilainya adalah "weather"
.
- Setelah pesan berhasil dikirim, Anda akan melihat notifikasi muncul di layar, seperti gambar di bawah:
6. Kesimpulan
Selamat! Anda telah berhasil menyelesaikan codelab untuk:
- Menyiapkan project Firebase
- Mengintegrasikan Firebase dengan aplikasi Android
- Membuat kredensial untuk FCM HTTP v1 API
- Mengirim pesan ke aplikasi Anda melalui FCM HTTP v1 API
Untuk mempelajari fitur lanjutan yang ditawarkan FCM, referensi berikut akan berguna: