Android + PHP でテスト
Android
ここを見て実装
https://firebase.google.com/docs/notifications/android/console-device
sendRegistrationToServer
メソッドで自サーバにpush通知用のトークン送信する処理書けばok。
もちろんサーバ側ではトークンを格納する処理を書く
サーバからの特定端末への通知
Ruby使えたらgem
とかありそうだったんですがPHPしか使えないサーバだったので。
こんな感じでクラス作ってNotification::send
で通知。
$pushTokens
に対象となる複数のトークン(配列)を設定してメッセージ設定したら送信できる。
notification.php
class Notification {
private static $apiKey = "hoge"; // Firebase console:Overview > プロジェクトの設定 > クラウドメッセージング > サーバーキー
private static $url = "https://fcm.googleapis.com/fcm/send";
static public function send($pushTokens, $message) {
$headers = [
"Authorization: key=".self::$apiKey,
"Content-Type: application/json"
];
$fields = [
"registration_ids" => is_array($pushTokens) ? $pushTokens : [$pushTokens],
"notification" => [
"text" => $message
]
];
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, self::$url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($handle);
curl_close($handle);
return $result;
}
簡単でした。