PHPプログラムからPush7のAPIで通知を送信するには
「WebPush」によるChromeやFirefoxなどのブラウザへの通知送信を手軽に自分のサイトで利用できるサービス「Push7」には、自作プログラムから通知送信を実行させるためのAPIも用意されている。HTTPSで特定のURLにアクセスしてパラメータを送信する一般的な方式なので、様々なプログラミング言語で簡単に利用できるぞ。「WordPress」などで使われている「PHP」言語の場合、「curl」系関数を利用すればいいだろう。
APIを利用するときに躓きやすいのが、パラメータの形式だ。POSTメソッドを使ってJSON形式で送ることになっているので、パラメータ名と値のペアを列挙した配列を「json_encode」関数でエンコードしたものを「CURLOPT_POSTFIELDS」オプションでセットするのだが、加えて「Content-Type: application/json」ヘッダで形式を明示しないとエラーになってしまう。
また、手動などでの通知送信時には省略できるアイコン画像の指定が必須となっているのも厄介だ。通知ごとに用意するのは面倒だし、HTTPSでなければならないので、自分のサイトがHTTPSに対応していない場合は用意するのが難しい。手動などでの送信時に未指定の場合はPush7のサイト設定で登録したアイコンが使われるので、APIでもこちらを指定するといいだろう。この画像は、管理画面の右上のサイト切り替えボタンなどに使われているので、右クリックメニューからURLをコピーして使えばいいぞ。
以上の点を押さえておけば、数行のプログラムで簡単に通知を送れるので、ぜひ活用して思い通りの通知送信を行おう。
APIの利用に必要な「App Number」と「API Key」は、Push7管理画面の「API」のページで確認できる。
Push7に登録されたアイコンのURLは、管理画面右上のアイコンの右クリックメニューからコピーすればいいぞ。
PHPのcurl系関数群でPush7のAPIから通知を送信する基本的なコードは以下のようになる。curlの動作を制御するために指定できる他のオプションは、「curl_setopt」関数の説明ページで確認できるぞ。
$curl=curl_init('https://api.push7.jp/api/v1/'.$appno.'/send'); curl_setopt_array($curl,array( CURLOPT_POSTFIELDS=>json_encode(array( 'title'=>$title, 'body'=>$body, 'icon'=>$icon, 'url'=>$url, 'apikey'=>$apikey, )), CURLOPT_HTTPHEADER=>array('Content-Type: application/json'), )); curl_exec($curl); curl_close($curl);