LINEでの通知機能について色々調べたところ、 LINE Notify API を見つけたので試してみました。
LINE Notify https://notify-bot.line.me/ja/
LINE Notifyの設定
1. LINE Notifyにログイン
2. マイページに移動
3 アクセストークンを発行する
4. 「トークン名」(通知時に表示されます)、通知の送信先を選択して発行
5 発行されたトークンを保管します(閉じると二度と表示できないので注意)。
トークンを発行すると、LINEのトークに『LINE Notify』さんが追加されます。 この『LINE Notify』さんがメッセージを通知してくれます。
実装
API Documentに記載がありますが、 https://notify-api.line.me/api/notify に対してPOST送信すればメッセージを送信できます。
試しにコマンドラインから下記サンプルを叩いて動作確認してみましょう。
[sample]
$ curl -X POST -H 'Authorization: Bearer {発行したアクセストークン}' -F 'message={送信メッセージ}' https://notify-api.line.me/api/notify
後はこの処理をアプリに組み込むだけです。 参考までにPHPのソースを載せておきます。
// 以下はenvファイルに定数定義 // LINE_API_URL=https://notify-api.line.me/api/notify // LINE_API_TOKEN={発行したアクセストークン} function post_message($message){ $data = array("message" => $message); $data = http_build_query($data, "", "&"); $options = array( 'http'=>array( 'method'=>'POST', 'header'=>"Authorization: Bearer " . env('LINE_API_TOKEN') . "\r\n" . "Content-Type: application/x-www-form-urlencoded\r\n" . "Content-Length: ".strlen($data) . "\r\n", 'content' => $data ) ); $context = stream_context_create($options); $resultJson = file_get_contents(env('LINE_API_URL'), FALSE, $context); $resutlArray = json_decode($resultJson, TRUE); if ($resutlArray['status'] != 200) { return false; } return true; } post_message("{送信メッセージ}");
以上。