スマートフォンでメインで使用しているのがLINEという人も多いかと思います。
そこで今回は、LINEが公開している「Messaging API」という機能の使い方を紹介します。
このMessaging APIを利用すると、Gmailなどのメールが届いたらLINEに通知したり、サイトの訪問者からLINEのメッセージを受け取ったりいろいろなことが出来るようになります。
まずは、Messaging APIを使用するための手順を紹介します。
LINE Messaging APIを使う方法
ではさっそく準備を始めていきます。30分ぐらいかかるかもしれませんので、時間があいているときにどうぞ。
一応ざっと簡単に手順を紹介しておくと、
- 開発者アカウントを作成する
- プロバイダーの作成
- チャネルの作成
- 公式アカウントの作成
の4段階になります。最後の公式アカウントをLINEに登録し、通知をさせたいときは作成した公式アカウントから送られてきます。
今回はトークで発言した内容をファイルに保存したり、サイトのお問い合わせフォームからLINEにメッセージを送ったりする方法を紹介!
開発者用のアカウントを作成
まずは開発者用のアカウント(LINE Developers アカウント)の作成から始めます。といってもすでにあるLINEアカウントを使って登録するだけです。

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

LINEに登録しているメールアドレスとパスワードを使ってログインします。
もしくはQRコードログインでも構いません。
LINE コンソールにログイン

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

プロバイダーの作成が完了しました。
まだ「チャネル」を作成していないので、「登録されているチャネルはありません」と表示されています。
ちなみに「チャンネル」ではなくて「チャネル」です。
チャネルの作成
続いてチャネルを作成します。このチャネルが今回の主目的です。
チャネルはいくつも作ることが出来るようですが、新しいチャネルを作成するたびに、同じ手順を踏む必要があるようです。

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

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

これですね。他にも色々出来るっぽいですね。
LINE公式アカウントの作成

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

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

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

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

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

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

さて、まだLINE公式アカウントの作成は完了していません。
迷子になってしまったら、manager.line.biz へ飛んでください。
②の「アカウントリスト」をクリックし、③「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にある先ほど作成した②プロバイダーをクリックします。

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

無事にアクセスできた場合、「成功」と表示されます。「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コンソールのページにある・・・
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に通知やメール内容を送る、なんてテクニックを紹介したいと思います。












コメント