開発部のおいぬです(▽・x・▽)
今回は、メッセージアプリ「LINE」が提供するサービス「LINE Notify」を使って、LINEのトークルーム(グループ)にメッセージを送信してみました。
今回は作ってみたというより、なんかおもしろそうなものをさわってみた、という感じです(笑)
LINE Notifyとは?
メッセージアプリ「LINE」が提供するサービスで、使用すると簡単に無料でLINEにメッセージを送れたり、連携した外部のWebサービスからの通知をLINEで受け取ったりすることが出来ます。
連携できる主なサービスは以下の通りです
- GitHub
- IFTTT
- Mackerel
- myThings
今回はサービス連携せず、メッセージだけ送ってみました。
LINE Notifyを使ってみる
LINEアプリのアカウントを持っている人はLINE Notifyを使用することができます。
まずLINEに登録しているメールアドレスとパスワードでLINE Notifyのページ(https://notify-bot.line.me/ja/)にログインします。
登録メールアドレスは、LINEアプリの『設定>アカウント』から確認することが出来ます。
LINE Notifyにログインしてマイページを開きます。「トークンを発行する」と書かれたボタンがあるので、クリックしてアクセストークンを発行します。クリックするとポップアップでトークン名と通知の送信先(LINEのトークルーム)を求められますので、設定してください。今回はあらかじめ作成しておいた『作ってみた』というメンバーが私しかいないグループを設定しました。トークン名とトークルームを設定したら「発行する」ボタンをクリックしてください。
発行されたトークンを[control]+[C]でコピーしてください。(メモ帳などに保存することをおすすめします。)
最後にLINE NotifyのLINEアカウントを先ほど↑設定したトークルームに招待してください。これで通知を受け取る準備が出来ました。
メッセージを送ってみる
ターミナルから以下のコマンドを実行します。「ACCESS_TOKEN」の部分は、先ほど発行したアクセストークンに置き換えてください。
1 |
$ curl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' -F "message=test" https://notify-api.line.me/api/notify |
curlコマンドとはサーバから、もしくはサーバへデータ転送を行うコマンドです。
構文 curl [オプション] [URL]
-X POST:POSTリクエストを送る
-H:HTTPヘッダにHEADERを追加もしくは変更する
-F PARAM:フォーム入力で送信ボタンを押した状況を行う。パラメータPARAMは「”name=content”」の形式で指定する
参考
https://qiita.com/bunty/items/758425773b2239feb9a7
http://itpro.nikkeibp.co.jp/atcl/column/14/230520/080400003/?rt=nocnt
コマンドを実行するとメッセージが届きました。
phpで書くと以下のようになります。ファイルを実行するたびメッセージが送信されるので、index.phpとして保存してブラウザで開くと、更新ボタンをクリックするたびメッセージが飛んできます。
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 |
<?php define('LINE_API_URL' ,"https://notify-api.line.me/api/notify"); define('LINE_API_TOKEN','ACCESS_TOKEN'); // 「ACCESS_TOKEN」を取得したアクセストークンに置き換える function post_message($message){ $data = array( "message" => $message ); $data = http_build_query($data, "", "&"); $options = array( 'http'=>array( 'method'=>'POST', 'header'=>"Authorization: Bearer " . 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(LINE_API_URL,FALSE,$context ); $resutlArray = json_decode($resultJson,TRUE); if( $resutlArray['status'] != 200) { return false; } return true; } post_message("テスト投稿"); // 送信されるメッセージ本文 |
今回はLINEにテスト送信をしてみただけですが、なかなか色々なことに使えそうですごくわくわくするサービスですね。
次回はこれを使って何か作ってみようと思います。
参考
https://qiita.com/takeshi_ok_desu/items/576a8226ba6584864d95
https://ferret-plus.com/5355