LINE Notifyとは?
みなさんは「LINE Notify」をご存知でしょうか?

IT業界の方やエンジニアの方であれば知っていたり、普段使っているという方もいるかと思います。LINE NotifyはLINE以外のTwitterやFacebook、などSNSの通知をLINEで受け取る事ができたり、PHP・Pythonなどのプログラムとapiを通して自由にLINEに通知を飛ばす事が出来ます。
簡単なLINE上の設定でLINE Notifyを利用できますし、使い方をマスターすればLINE一つで仕事の通知を全て受け取って、LINEで返信して終わりというようにLINE一つで全てが片付く可能性を秘めています。
ぜひこの記事を参考にLINE Notifyの使い方について学びましょう。
LINE Notifyの使い方
LINE NotifyはGithubやIFTTTなど連携サービスと連携させて利用する方法と、アクセストークンを発行してプログラムやコマンドからapiを叩いて利用する方法の2つがあります。
今回はトークンを使ったLINE Notifyの使い方をご紹介していきます。
アクセストークンを発行する方法
まずはアクセストークンを発行しましょう。下記のLINE Notifyのサイトからアクセストークンを発行することが出来ます。


マイページをクリックしましょう。


最初はテスト的に行うのであれば、「1:1でLINE Notifyから通知を受け取る」を選択して、自分だけで通知を受け取るようにしましょう。
もしグループに送る場合は「Search by group name」から対象のグループを検索して、グループを選択しましょう。

またページを閉じるとトークンは二度と表示されないので、しっかりとコピーして、どこかにトークンの文字列を保存しておきましょう。
これでLINE Notifyのトークンがゲットでき、apiを利用する準備が整いました。

実際にトークンを使って一つシンプルな通知のテストをしてみましょう。Macなどcurlが使える環境で以下のコマンドを叩いてみて下さい。
curl -X POST -H "Authorization: Bearer ゲットしたトークン" -F "message=テスト" https://notify-api.line.me/api/notify
「ゲットしたトークン」には先程取得したトークンに差し替えてcurlのコマンドを実行してみましょう。

curlを使ったapiへのアクセスが上手く行った場合はレスポンスは{"status":200,"message":"ok"}が返ってきます。トークンが不正の場合は{"status":401,"message":"Invalid access token"}が返ってきますので再度トークンを確認しましょう。
またLINE Notifyのapiのドキュメントは下記となります。ぜひapiのドキュメントを参考にしてLINE Notifyを上手く使ったサービスやシステムを作成しましょう。
Pythonからapiを利用する
Pythonを使ってLINE Notifyのapiからシンプルなメッセージを送信してみたいと思います。
下記のプログラムの中のtokenとメッセージを適宜かえてPythonプログラムを実行してみて下さい。
#coding:UTF-8 import requests def main(): url = "https://notify-api.line.me/api/notify" token = "トークンをここに記入" headers = {"Authorization" : "Bearer "+ token} message = 'python test' payload = {"message" :message} r = requests.post(url ,headers = headers ,params=payload) if __name__ == '__main__': main()

PHPからapiを利用する
続いてPHPからLINE Notifyのapiを利用して、シンプルなメッセージを送信してみます。
<?php define('LINE_URL' , "https://notify-api.line.me/api/notify"); define('LINE_TOKEN', 'トークンをここに記入'); function notify($message){ $data = array( "message" => $message ); $data = http_build_query($data, "", "&"); $options = array( 'http'=>array( 'method'=>'POST', 'header'=>"Authorization: Bearer " . LINE_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); file_get_contents(LINE_URL, false, $context ); } notify("php test"); ?>

画像を送りたい場合
次にPHPのプログラムを使って、LINE Notifyで画像を送信する例を紹介します。今回はpngファイルを送信します。実行するプログラムと同じフォルダの中に「sample.png」を用意しました。
<?php define('LINE_URL' , "https://notify-api.line.me/api/notify"); define('LINE_TOKEN', 'トークンをここに記入'); function notify($message){ $fileName = "sample.png"; $ext = substr($fileName, strrpos($filename, '.') + 1); // 画像取得 $fileHandle = fopen("./{$fileName}", "rb"); $fileContents = stream_get_contents($fileHandle); fclose($fileHandle); $boundary = "---------------------".substr(md5(rand(0,32000)), 0, 10); $data .= "--{$boundary}\r\n"; $data .= "Content-Disposition: form-data; name=message\r\n\r\n{$message}\r\n"; $data .= "--{$boundary}\r\n"; $data .= "Content-Disposition: form-data; name=\"imageFile\"; filename=\"{$fileName}\"\r\n"; $data .= "Content-Type: image/{$ext}\r\n"; $data .= "\r\n"; $data .= $fileContents; $data .= "\r\n--{$boundary}"; // 終端 $data .= "--{$boundary}--\r\n"; $options = array( 'http'=>array( 'method'=>'POST', 'header'=>"Authorization: Bearer " . LINE_TOKEN . "\r\n" . "Content-Type: multipart/form-data; boundary={$boundary}", 'content' => $data ) ); $context = stream_context_create($options); file_get_contents(LINE_URL, false, $context ); } notify("php image testだよ"); ?>

ちなみにLINE Notifyで対応している画像形式はjpegとpngになります。
まとめ
いかがでしたでしょうか。LINE Notifyの使い方として今回はアクセストークンを発行して、コマンドやPHP・PythonのプログラムからAPIを叩いてメッセージを送信する方法をご紹介してきました。
LINE Notifyを上手く使えば業務の通知などをLINEで一本化することが出来ます。プライベートではLINEを仕事では別のチャットツールを使っている方でもLINEで一本化すると開くアプリやインストールするアプリの数が減って嬉しいですよね。
ぜひLINE Notifyを使ってプライベートと仕事を効率化させていきましょう!