Uncategorized

1 số kinh nghiệm sử dụng FCM với php

Việc sử dụng FCM khá đơn giản và có nhiều hướng dẫn trên mạng. Ở đây, mình chỉ nói 1 số kinh nghiệm với php.
1. Code chạy:
$path_to_firebase_cm = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
"priority" => "high",
'to' => $token,
'notification' => array('body' => $message, 'sound' => $sound, 'badge' => $badge, $extra = null, $duration = null, "click_action" => "FCM_PLUGIN_ACTIVITY"),
'data' => array('message' => $message, 'key' => $key)
);

$headers = array(
'Authorization:key=' . self::SERVER_KEY_HYBRID,
'Content-Type:application/json'
);
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $path_to_firebase_cm);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

$result = curl_exec($ch);

curl_close($ch);
2. Giải thích cơ chế:
– device ->send request lên FCM yêu cầu token push -> FCM -> FCM trả về token push
– device nhận token push -> send token push lên local server -> local server -> local server lưu database phục vụ việc push sau này.
– Khi muốn push, server sẽ gọi hàm ở b1 gửi lên FCM -> FCM -> FCM sẽ push về device.
3. Giải thích biến:
– Ở trên có khá nhiều biến.
$path_to_firebase_cm: đây là link FCM cho việc push single message, đây là link cố định.
$token: đây là token push.
$message: đây là message hiện lên app khi có thông báo trả về
$sound : true/false, muốn có tiếng khi có thông báo trả về hay không
$badge: số đếm message sẽ được cộng dồn thêm vào ở app (phần trên bên phải) (android), hay số message push chưa đọc tổng số ở ios (phần này ko chắc lắm).
“click_action”: cái này phục vụ cho việc bắt sự kiện push trả về để lấy thông tin.
self::SERVER_KEY_HYBRID: ở FCM có 2 tham số server(fcm console -> overview -> project settings -> cloud messaging), server key: dành cho app android/ios, Legacy server key: dành cho
hypbid app

Được gắn thẻ