今日は、FireBase Cloud Messaging を利用したプッシュ通知を PHP から送付する方法についてです。
思ったより簡単に実装できたので、自分の備忘録(または困ったときのコピー元)としてまとめました。
なお、こちらは送信方法のみです。
FireBaseのアカウント作成等は飛ばしておりますので、その点はご了承ください。
今回参考にさせていただいた記事はこちらから。
WebAPIを叩く(curl) – Qiita
https://qiita.com/re-24/items/bfdd533e5dacecd21a7a
WebAPIの実行には、curl
を使用しています。
早速ですが、コードはこちら。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | $token = '[firebaseのトークン]' ; $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 で実行するときにも使えますので、参考にしていただければと思います。