1. Pengantar
Dibandingkan dengan API lama FCM, 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 memandu Anda melalui proses penyiapan sisi server dan klien untuk mengaktifkan pengiriman notifikasi push ke aplikasi Android menggunakan FCM HTTP v1 API. Halaman 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 untuk penyiapan sisi klien dan server guna mengaktifkan pengiriman notifikasi push ke aplikasi Android Anda menggunakan HTTP v1 API FCM
- 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 kode contoh 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, modul akan mendaftar ke server FCM dan berlangganan topik. Pada langkah-langkah selanjutnya di codelab ini, Anda akan mengirim pesan topik ke topik dan aplikasi Anda akan menerimanya.
- Download contoh panduan memulai Android Firebase.
- 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: Mendaftarkan aplikasi ke Firebase". - Ikuti bagian 1 dari "Langkah 3: Menambahkan file konfigurasi Firebase" untuk mendownload
google-services.json
dan menambahkannya ke project Anda. Build dan jalankan project.
3. Menyiapkan server aplikasi
Setelah aplikasi siap, 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, SDK ini akan mengirim pesan 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 API lama FCM, token akses jangka pendek kurang rentan terhadap risiko kebocoran kredensial. Bagian ini menjelaskan langkah-langkah pembuatan kredensial untuk menghasilkan token akses yang digunakan dalam memanggil API.
- Siapkan akun layanan Firebase agar Firebase Admin SDK dapat memberikan otorisasi panggilan ke FCM API. Buka Project Settings di Firebase console dan pilih tab Service accounts. Klik Buat kunci pribadi baru 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()
(ditampilkan di bawah) di classMessaging.java
menghasilkan 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 pesan/project di terminal, lalu ketik:
./gradlew run -Pmessage=common-message
untuk mencetak token OAuth2.
Informasi selengkapnya dapat ditemukan di Mengizinkan permintaan pengiriman.
5. Mengirim pesan dengan REST API
Sekarang Anda siap untuk 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 di kode aplikasi Android yang disebutkan dalam project Firebase dan penyiapan aplikasi Android. Secara default, nilainya adalah "weather"
.
- Setelah pesan berhasil dikirim, Anda akan melihat notifikasi muncul di layar, mirip dengan 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 menjelajahi fitur lanjutan yang ditawarkan FCM, referensi berikut akan berguna: