LINEに通知を送るMessaging APIの使い方

スマートフォンでメインで使用しているのがLINEという人も多いかと思います。
そこで今回は、LINEが公開している「Messaging API」という機能の使い方を紹介します。
このMessaging APIを利用すると、Gmailなどのメールが届いたらLINEに通知したり、サイトの訪問者からLINEのメッセージを受け取ったりいろいろなことが出来るようになります。
まずは、Messaging APIを使用するための手順を紹介します。

LINE Messaging APIを使う方法

ではさっそく準備を始めていきます。30分ぐらいかかるかもしれませんので、時間があいているときにどうぞ。

一応ざっと簡単に手順を紹介しておくと、

  1. 開発者アカウントを作成する
  2. プロバイダーの作成
  3. チャネルの作成
  4. 公式アカウントの作成

の4段階になります。最後の公式アカウントをLINEに登録し、通知をさせたいときは作成した公式アカウントから送られてきます。

今回はトークで発言した内容をファイルに保存したり、サイトのお問い合わせフォームからLINEにメッセージを送ったりする方法を紹介!

開発者用のアカウントを作成

まずは開発者用のアカウント(LINE Developers アカウント)の作成から始めます。といってもすでにあるLINEアカウントを使って登録するだけです。

LINEアカウントで登録

LINE Developersのページへ行き、「LINEアカウントで登録」をクリック。

メールアドレスとパスワードを入力

LINEに登録しているメールアドレスとパスワードを使ってログインします。

もしくはQRコードログインでも構いません。

LINE コンソールにログイン

英語で表示された場合

ログイン後、もし英語で表示された場合は矢印の先にある地球儀のアイコンをクリック。

JPを選択

「JP」をクリックします。
ちょくちょく英語に戻ってしまうので、そのときはこの手順で日本語にしてください。

コンソールにログインをクリック

コンソールにログイン」をクリックします。
地球儀の右にあります。

LINEアカウントでログイン

コンソールにログインします。
「LINEアカウントでログイン」をクリックします。

メールアドレスとパスワードを入力

再びメールアドレスとパスワードを入力し、③の「ログイン」をクリック。

認証番号で本人確認

4桁の認証番号が表示されます。この数字を・・・

スマホのLINEに入力

スマホのLINEを立ち上げ、表示された認証番号を入力します。

本人確認をクリック

「本人確認」をクリックします。

LINEビジネスIDを作成をクリック

「LINEビジネスIDを作成」をクリックします。

英語だった場合

このように英語が表示された場合は・・・

JPをクリック

地球儀のアイコンをクリックし、「JP」を選択します。

開発者名を入力

こんな感じで開発者のプロフィール作成画面になります。
適当に入力していきます。
「開発者名」は日本語でもOKっぽいです。

アカウントを作成をクリック

「開発者名」「メールアドレス」を入力し、「LINE開発者契約の内容に同意」などにチェックし、「アカウントを作成」をクリックします。

LINE Developersアカウントが登録された

LINE Developersアカウントが登録されました。
「コンソール(ホーム)」をクリック。

コンソールにご登録ありがとうございます

ふぅ。これでいろいろなことが出来るようになりました。

プロパイダーの作成

続いてプロバイダーを作成します。プロバイダーとは簡単に言ってしまえばサービス提供者みたいなものです。
組織名みたいなものです。*実は私もよくわかっていません。(笑)
とりあえず、LINE Messaging API を使用するのに必要になってきます。

新規プロバイダー作成をクリックします

「新規プロバイダー作成」をクリックします。

プロバイダー名を入力

プロバイダー名を決めます。最初は「テスト」でいいでしょう(後で変更できます)。

「作成」をクリックします。

登録されているチャネルはありません

プロバイダーの作成が完了しました。
まだ「チャネル」を作成していないので、「登録されているチャネルはありません」と表示されています。

ちなみに「チャンネル」ではなくて「チャネル」です。

チャネルの作成

続いてチャネルを作成します。このチャネルが今回の主目的です。
チャネルはいくつも作ることが出来るようですが、新しいチャネルを作成するたびに、同じ手順を踏む必要があるようです。

プロバイダーをクリック

LINE Developersの画面で先ほど作成したプロバイダーをクリックします。

Messaging APIをクリック

「チャンネル設定」で「Messaging API」があるのでここをクリックします。
これでWebページからメッセージを受け取ってLINEに通知したり、GmailをLINEに通知したり、が出来るようになります。

Messaging API

これですね。他にも色々出来るっぽいですね。

LINE公式アカウントの作成

Messaging APIチャネルの作成

どうやらMessaging APIを使うには「LINE公式アカウント」の作成が必要らしい・・・。

「LINE公式アカウントを作成する」をクリック。

LINEアカウントでログイン

するとこのようなLINEアカウントがログインした状態で表示されるので、「ログイン」をクリック。

SMS認証を行う

SMS認証をおこないます。
「SMS認証を行う」をクリック。

電話番号を入力

SMSを受信できる電話番号を入力します。私の場合はLINEに登録してある電話番号を使いました。

②の「SMSを送信」をクリック。

確認番号を入力して送信

電話番号に届いた6桁の確認番号を入力①し、②の「確認する」をクリック。

サービスに戻るをクリック

無事確認番号が正しいとこのような画面になるので、「サービスに戻る」をクリックします。

LINE公式アカウントを作成をクリック

さて、まだLINE公式アカウントの作成は完了していません。
迷子になってしまったら、manager.line.biz へ飛んでください。

②の「アカウントリスト」をクリックし、③「LINE公式アカウントを作成」をクリックします。

LINE公式アカウントの設定

LINE公式アカウントの作成画面です。
「アカウント名」や「メールアドレス」などを入力していきます。

一応、アカウント名は好きな名前で構いません。後で修正も出来ます。
「情報の公開」で「アカウント認証」を行なうとLINEアプリの検索結果などに表示されることも出来るみたいです。

私の場合は単にメールが届いたらLINEに通知したいだけなので、適当に入力しました。

業種を設定

業種を設定します。
これも私は特に公式アカウントで商売をするつもりはないので適当にチェック。

がついている項目は入力が必須のようです。

全て入力し終わったら「確認」をクリック。

大業種の選択

「大業種」の選択はこんな感じ。
私は「個人」を選択しました。

小業種の選択

「小業種」を選択します。
私は「IT・コンピュータ」を選択しました。

運用目的

「運用目的」はこんな感じ。

主な使い方

「主な使い方」はこんな感じ。

最後に「確認」をクリック。

入力した項目の確認

入力した内容の確認画面になるので、「完了」をクリックします。

公式アカウントが作成された

公式アカウントが作成されました。

では続いて「Messaging API」を使えるようにします。

公式アカウントがLINEに追加

公式アカウントを作成すると、スマホのLINEアプリに登録されるはずです。

ホームを開く

スマホのLINEを開いたら、画面左下の「ホーム」をタップします。

友だちリストをタップ

友だちリストにある「すべて見る」をタップします。

公式アカウントをタップ

友だちリストの下にある項目を左にスライドすると、一番右側に「公式アカウント」があるのでここをタップ。

作成した公式アカウントがあった

今作成した自分の公式アカウントがありました。
ここをタップすると・・・

公式アカウントのプロフィール

公式アカウントのプロフィールが表示されました。

ここで「トーク」をタップします。

公式アカウントのトークが開いた

公式アカウントとのトークが開きます。

このトークでこちらからメッセージを送ると、後で紹介する「Webhook URL」で指定したURLにPOSTでデータが送られます。

LINEのトークをファイルに保存する

LINEの公式アカウントのトークからメッセージを送ると、そのメッセージをPHPなどに送信することが出来ます。それを実現するのが、「Webhook URL」。
Webhook URLにPHPやCGIなどのURLを指定しておくと、トークで発言した内容がPOSTで指定したURLへ送られてきます。

Webhook URLの設定

Webhook URLの指定

公式アカウントにメッセージを送信した

こんな感じでスマホのLINEで、先ほど作成した公式アカウントのトーク画面でメッセージを送信すると、「Webhook URL」で指定したURLにPOSTでデータが送られます。

URL先でデータをファイルに保存するようにしておくと、

“スマホのLINEからメッセージを送ると?”

というデータが保存されます。
URLの指定方法は以下。

プロバイダー名をクリック

まずはLINE Developersの方へ戻り、Adminにある先ほど作成した②プロバイダーをクリックします。

コンソールにログインをクリック

もし、このようにトップページに移動してしまった場合は、右上にある「コンソールにログイン」をクリックすると戻れます。

Messaging APIをクリック

「Messaging API」をクリックします。

コンソール画面が表示された

コンソール画面が表示されました。

Messaging API設定をクリック

「Messaging API設定」をクリックします。

Webhook設定

「Webhook設定」という項目があるので、この「Webhook URL」にメッセージを受信するPHPなどのURLを入力します。

「更新」をクリック。

「Webhookの利用」をオンにしておきます。

検証をクリック

URLを入力すると、「検証」というボタンが表示されるので、ここをクリック。

成功

無事にアクセスできた場合、「成功」と表示されます。「OK」をクリック。

Webhookの使い方

さて、ここまで準備が完了したら、実際に動作を検証してみましょう。
「Webhook URL」に指定したURLに、次のPHPを設置してみます。

PHPソース
<?
// ファイル名
$filename = './line.txt';

// データを取得
// Webhookで受け取ったPOSTデータ(JSON形式)を想定
if(false == ($json_data = file_get_contents('php://input'))){
	exit();
}
$data = json_decode($json_data, true);

if (false == ($fp = fopen($filename , "a"))){
	exit();
}
// 各レコードを書き込む
foreach ($data['events'] as $event) {
    $row = array();
    $row[] = $event['source']['userId'];
    $row[] = $event['type'];
    $row[] = $event['message']['text'];
    fputcsv($fp, $row);
}

// ファイルを閉じる
fclose($fp);
exit();
?>

これをWebhook URLに指定したURLに設置します。
仕組みとしては送られてきたトークを「line.txt」に保存します。

トークを送る

公式アカウントにメッセージを送信した

こんな感じでメッセージを送ると・・・

保存ファイル(line.txt)を開くと・・・

U2xxxxxxxxxxxxxxxx,message,スマホのLINEからメッセージを送ると?

こんな感じで「ユーザーID」「形式」「トーク内容」が保存されます。

スタンプの場合は?
顔文字スタンプを送ると

こんな感じでスタンプを送ると・・・

U2xxxxxxxxxxxxxxxx,message,(please!)

このように対応する単語が()で囲まれて送られてきます。

あなたのユーザーID

このときの「U2xxxx….」は、先ほど作成したチャネルの「あなたのユーザーID」です。
表示させるには、LINEコンソールのチャネルを開き、「チャネル基本設定」をクリック。

「あなたのユーザーID」に表示されているUから始まるIDです。

サイトのお問い合わせフォームからLINEへ送る

さて、もっと実用的な使い方を紹介します。サイトのお問い合わせフォームから直接LINEトークに送信するような仕組みを作ってみます。

お問い合わせフォーム

例えばこのようなお問い合わせフォームをサイトに設置し、「名前」「メールアドレス」「メッセージ」を入力して送信すると・・・

スマホに通知が届く

このようにスマートフォンのLINEに通知が届きます。

トークに届く

このようにLINEに送られてきたデータが表示されました。
メールアドレスをタップすると・・・

新規メッセージをタップ

このように「新規メッセージ」かアドレスをコピーするか選択できるので、新規メッセージの方をタップすると・・・

新規メッセージ

メールアプリが立ち上がり、送られてきたメールアドレス宛にメールを送ることが出来ます。

PHPの設定

このような仕組みを実現するには、先程の「Webhook URL」以外に別のPHPが必要になります。

LINEにメッセージを送信するPHPソースサンプル

赤い文字の「アクセストークン」と「user_ID」は後で紹介するLINE コンソールで表示される文字列です。

<?
// チャンネルアクセストークン
$channelToken = 'アクセストークン';
// 送信先のユーザーID(ユーザーIDはLINEのUserIDを指定)
$to = 'user_ID';

$errorMsg = "";

if (isset($_POST["name"]) && isset($_POST["email"])&& isset($_POST["message"])){
	// 値をチェックするシステムを入れておく
	$name = $_POST["name"];
	$email = $_POST["email"];
	$message = "お名前:" . $name . "\n" . "メールアドレス:"  . $email . "\n" . "メッセージ\n" . $_POST["message"];
	// メッセージのデータ
  $sendData = [
    'to' => $to,
    'messages' => [
        [
            'type' => 'text',
            'text' => $message
        ]
    ]
  ];
$sendData = array();
$sendData["to"] = $to;
$sendData["messages"] = array();
$sendData["messages"][0]["type"] = "text";
$sendData["messages"][0]["text"] = $message;

// HTTPヘッダー
$header = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $channelToken,
];

$header = array("Content-Type: application/json" , "Authorization: Bearer " . $channelToken);

// cURLセッションを初期化
$ch = curl_init('https://api.line.me/v2/bot/message/push');
curl_setopt($ch, CURLOPT_POST, true);// POSTで送信
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($sendData)); // 送信データ
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
// APIリクエストを実行
$result = curl_exec($ch);
// エラーチェック
if (curl_errno($ch)) {
    $errorMsg = curl_error($ch);
} else {
    $errorMsg = "無事送信されました。<br>返事をお待ち下さい";
}
// 終了
curl_close($ch);
}else{
	$errorMsg = "入力欄は全て必須項目です。また、最大150文字までです";
}
?>

アクセストークンとは?

上のソース内の「アクセストークン」は、LINE Developersコンソールのページにある・・・

LINEコンソールのMessaging API

②「Admin」の下にあるアカウントをクリックし、③「Messaging API設定」を開き・・・

チャンネルアクセストークン

一番下にある「チャネルアクセストークン」にある「チャネルアクセストークン(長期)」の下の長い文字列です。

コピーのアイコンをクリックして、ソースに貼り付けます。

user_IDは?

ソース内の「user_ID」は、先程の「あなたのユーザーID」になります。

ソース内の2つの値を自分の値に変更してください。

お問い合わせフォームの例

お問い合わせフォームのページのソースは以下。適当に改造してください。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>お問い合わせフォーム</title>
    <style>
	body {
	    font-family: sans-serif;
	    background-color: #f0f0f0;
	}

	.container {
	    margin: 0 auto;
	    padding: 10px;
	    background-color: #fff;
 	   box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	}

	h1 {
    	  text-align: center;
    	  color: #333;
	}

	.form-group {
 	   margin-bottom: 15px;
	}

	label {
	    display: block;
	    font-weight: bold;
 	   color: #666;
	}

	input, textarea {
	    width: 95%;
	    border: 1px solid #ccc;
	    border-radius: 3px;
	  font-size:17px;
	}

	button {
	    background-color: #333;
 	   color: #fff;
 	   padding: 10px 20px;
 	   border: none;
 	   border-radius: 3px;
  	  cursor: pointer;
	}

	button:hover {
	    background-color: #555;
	}
	</style>
</head>
<body>
    <div class="container">
        <h1>お問い合わせ</h1>
<?
if ("" != $errorMsg){
	print "<p>{$errorMsg}</p>\n";
}
?>
        <form action="example.php" method="post">
            <div class="form-group">
                <label for="name">お名前</label>
                <input type="text" id="name" name="name" required placeholder="必須"
<?
if (isset($_POST["name"])){ print " value=\"{$name}\"";};
?>
                >
            </div>
            <div class="form-group">
                <label for="email">メールアドレス</label>
                <input type="email" id="email" name="email" required placeholder="必須"
<?
if (isset($_POST["email"])){ print " value=\"{$email}\"";};
?>
                >
            </div>
            <div class="form-group">
                <label for="message">メッセージ</label>
                <textarea name="message" rows="5" id="message" required placeholder="必須">
<?
if (isset($_POST["message"])){ print $_POST["message"];};
?>
</textarea>
            </div>
            <button type="submit">送信</button>
        </form>
    </div>
</body>
</html>

まとめ

このようにLINEのMessaging APIを使用すると、PHPなどサーバー側のプログラムと組み合わせてLINEに通知やメッセージを送ったりすることが出来ます。
準備するのに少し手間がかかりますが、アイデア次第でおもしろいことが出来るかもしれません。

次回は、Gmailにメールが届いたらLINEに通知やメール内容を送る、なんてテクニックを紹介したいと思います。

コメント

タイトルとURLをコピーしました