Assalamu'alaikum Wr. Wb.
Pada artikel saya kali ini saya ingin membagikan salah satu cara pada dunia pemrograman atau develop aplikasi yaitu setting firebase messaging menggunakan service account. Service Account adalah salah satu metode setting firebase messaging yang jauh lebih aman dibandingkan dengan menggunakan server key dan lebih cocok untuk anda yang menginginkan keamanan yang lebih tinggi terutama untuk aplikasi yang dalam tahap produksi, authentikasi service account menggunakan OAuth 2.0. yang menggunakan konfigurasi file konfigurasi berekstensi json.
Cara mendapatkan file konfigurasi Service Account
- Masuk dan login ke halaman firebase console anda.
- Masuk dan pilih atau buat projek aplikasi anda
- Klik icon setting lalu pilih project setting
- Masuk ke menu Service Account
- Scroll ke bawah lalu generate key dan downloas file konfigurasi berekstensi json
- Install package firebase.google.com/go
Install package tersebut dengan menjalankan peritah berikut pada terminal di root projek aplikasi golang anda.
go get firebase.google.com/go - Install package google.golang.org.api/option
Install package google.golang.org.api/option pada terminal di root aplikasi golang anda dengan menjalankan perintah berikut:
go get google.golang.org.api/option - Contoh kode file konfigurasi Firebase Messaging pada aplikasi golang anda
package main
import ("context"
"fmt"firebase "firebase.google.com/go"
"firebase.google.com/go/messaging"
"google.golang.org/api/option"
)
func SendNotif(fcmToken string, title string, body string, data map[string]string){
var credentialFile = 'path/to/firebase_credentials.json'
opt := option.WithCredentialsFile(credentialFile)conf := &firebase.Config{ProjectID: “your-app-project"}
app, err := firebase.NewApp(context.Background(), conf, opt)
if err != nil {
fmt.PrintLn(“err:”,err.Error())return
}
ctx := context.Background()
client, err := app.Messaging(ctx)
if err != nil {
fmt.PrintLn(“err:”,err.Error())return
}
messageData := &messaging.Message{Token: fcmToken,
Notification: &messaging.Notification{
Title: title,
Body: bodyNotif,
},
Data: data,
}
response, err := client.Send(ctx, messageData)
if err != nil {
fmt.PrintLn(“err:”,err.Error())return
}
app.Messaging(context.Background())
fmt.PrintLn(“Success send messasge!”)
return
}
Pada kode di atas your-app-project id adalah id aplikasi anda yang bisa anda peroleh dari link pada console project firebase anda. - Sekarang anda sudah bisa memanggil function di atas untuk mengirim notifikasi menggunakan firebase berdasarkan fcm token yang anda berikan pada function
- Install vendor kreait/firebase-app
Untuk menginstall vendor tersebut anda perlu menjalankan perintah berikut pada terminal direktori projek anda.
composer require kreait/firebase-app:^7.14 - Contoh kode setting Service Account Firebase Messaging
<?php
namespace App\Helpers;
use Exception;
use Kreait\Firebase\Factory;
use Kreait\Firebase\Messaging\CloudMessage;
class SendNotif
{
public static function sendNotif($fcm_token, $title, $body, $data)
{
try {$firebase = (new Factory())->withServiceAccount(__DIR__ .'/path/to/firebase_credentials.json');
$messaging = $firebase->createMessaging();
$message = CloudMessage::fromArray([
'token' => $fcm_token
'notification' => [
'title' => $title,
'body' => $body,
],
'data' => $data,
]);
$ress = $messaging->send($message);
return true;
} catch (Exception $e) {
return false;
}
}
}
0 Komentar