LINE Notifyの使い方を解説!アクセストークンを使ってメッセージを送信しよう

LINE Notifyの使い方を解説!アクセストークンを使ってメッセージを送信しよう

LINE Notifyの使い方を解説いたします。今回はアクセストークンを使ってコマンドやPHP・PythonのプログラムからLINE NotifyのAPIを叩きメッセージや通知を送信する方法をご紹介いたします。サンプルプログラムではpngの画像付きのメッセージも送信しています。


目次

  1. LINE Notifyとは?
  2. LINE Notifyの使い方
  3. まとめ

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のサイトからアクセストークンを発行することが出来ます。

LINE Notify
LINE Notifyのサイトの右上の「ログイン」
上記サイトにアクセスしたら、右上のログインをクリックして自分のLINEアカウントでログインしましょう。
LINEのNotifyのメニュー
ログイン後に右上の自分のLINEのユーザー名をクリックし、メニューを開きます。

マイページをクリックしましょう。
LINE Notifyのアクセストークンの発行(開発者向け)
続いて、「アクセストークンの発行(開発者向け)」の箇所の「トークンを発行する」ボタンをクリックします。
LINE Notifyのトークンを発行する
トークンを発行するというウィンドウが立ち上がりますので、ここでトークン名(通知の際に表示される名前)と、通知を送信するトークルームを選択します。

最初はテスト的に行うのであれば、「1:1でLINE Notifyから通知を受け取る」を選択して、自分だけで通知を受け取るようにしましょう。

もしグループに送る場合は「Search by group name」から対象のグループを検索して、グループを選択しましょう。

LINE Notifyの発行したトークン
無事にトークンが発行されます。「コピー」ボタンからトークンをコピーしておきましょう。このトークンを使う事でLINE Notifyのapiを利用できるようになります。

またページを閉じるとトークンは二度と表示されないので、しっかりとコピーして、どこかにトークンの文字列を保存しておきましょう。

これでLINE Notifyのトークンがゲットでき、apiを利用する準備が整いました。

LINE Notifyからのメッセージ
LINEのトークを見てみると、LINE Notifyからトークン発行を知らせるメッセージが来ているかと思います。

実際にトークンを使って一つシンプルな通知のテストをしてみましょう。Macなどcurlが使える環境で以下のコマンドを叩いてみて下さい。

curl -X POST -H "Authorization: Bearer ゲットしたトークン" -F "message=テスト" https://notify-api.line.me/api/notify

「ゲットしたトークン」には先程取得したトークンに差し替えてcurlのコマンドを実行してみましょう。

LINE Notifyからの通知テスト
すると上記のコマンドのmessageで指定した「テスト」というメッセージが届きます。このようにトークンを使ってメッセージをLINEに自由に飛ばす事が出来ます。

curlを使ったapiへのアクセスが上手く行った場合はレスポンスは{"status":200,"message":"ok"}が返ってきます。トークンが不正の場合は{"status":401,"message":"Invalid access token"}が返ってきますので再度トークンを確認しましょう。

またLINE Notifyのapiのドキュメントは下記となります。ぜひapiのドキュメントを参考にしてLINE Notifyを上手く使ったサービスやシステムを作成しましょう。

LINE Notify API Document

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()
PythonからLINE Notifyのapiを使ってシンプルなメッセージを送信
上記Pythonプログラムを実行すると、LINE Notifyのトークにシンプルなテストメッセージが届きます。

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のapiを使ってシンプルなメッセージを送信
上記のPHPプログラムを実行すると、LINE Notifyのトークにシンプルなテストメッセージが送信されます。

画像を送りたい場合

次に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でpngの画像を送信
これでプログラムと同じフォルダの中にあるsample.pngをメッセージとともに送信することが出来ます。

ちなみにLINE Notifyで対応している画像形式はjpegとpngになります。

まとめ

いかがでしたでしょうか。LINE Notifyの使い方として今回はアクセストークンを発行して、コマンドやPHP・PythonのプログラムからAPIを叩いてメッセージを送信する方法をご紹介してきました。

LINE Notifyを上手く使えば業務の通知などをLINEで一本化することが出来ます。プライベートではLINEを仕事では別のチャットツールを使っている方でもLINEで一本化すると開くアプリやインストールするアプリの数が減って嬉しいですよね。

ぜひLINE Notifyを使ってプライベートと仕事を効率化させていきましょう!


関連記事