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を使ってプライベートと仕事を効率化させていきましょう!