今日は、FireBase Cloud Messaging を利用したプッシュ通知を PHP から送付する方法についてです。
思ったより簡単に実装できたので、自分の備忘録(または困ったときのコピー元)としてまとめました。
なお、こちらは送信方法のみです。
FireBaseのアカウント作成等は飛ばしておりますので、その点はご了承ください。
今回参考にさせていただいた記事はこちらから。
WebAPIを叩く(curl) – Qiita
https://qiita.com/re-24/items/bfdd533e5dacecd21a7a
WebAPIの実行には、curl
を使用しています。
早速ですが、コードはこちら。
$token = '[firebaseのトークン]'; $base_url = 'https://fcm.googleapis.com/fcm/send'; $data = array( "to" => "[送付先のデバイストークン]", "priority" => "high", "notification" => array( "title" => "[タイトル]", "body" => "[メッセージ]", "sound" => "default", "click_action" => "FCM_PLUGIN_ACTIVITY" ) ); $header = array( 'Authorization: key='.$token, 'Content-Type: application/json' ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $base_url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); // post curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); // jsonデータを送信 curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // リクエストにヘッダーを含める curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); $response = curl_exec($curl); $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE); $header = substr($response, 0, $header_size); $body = substr($response, $header_size); $result = json_decode($body, true); curl_close($curl);
接続先だったり、送付するデータを変更しただけで、ほぼ参考にさせていただいた記事に書かれていたコードそのままです。
変数 $data
内に指定しているデータは、通知の内容によって変更してください。
FCMの詳細については、下記の公式サイトのガイドを参考にしてください。
Firebase Cloud Messaging|FireBase
https://firebase.google.com/docs/cloud-messaging/?hl=ja
以上、FireBase Cloud Messaging で プッシュ通知をPHPで送信する方法でした。
他の WebAPI を PHP で実行するときにも使えますので、参考にしていただければと思います。