ぱんぶろ

パンジーの「いいね!」ブログ

個人でも利用可能なLINE API(BOT API)の使い方(PHP)。トライアル版は先着10,000名様まで利用可能!

      2016/04/16  

line api-25

LINEのBOT APIが公開されました。
正確には、LINEのBOT APIですね。(しかもまだトライアル)

LINE@などと違い、特に審査なしで個人でも使えるので、個人で遊んでみたい方にはピッタリかな思います。

現在はトライアル版で先着10,000名まで利用させてくれるそうなので、気になる方はお早めに。

では、LINE BOT APIを利用できるようになるまでの登録手順から簡単なサンプルまでをどうぞ!

追記

上限に達したためトライアル版の提供が終了しました。
今後正規版がアナウンスされると思いますので、また追って連絡します。
line api_0

スポンサード リンク

BOT APIでできること

基本的には、相手からの送信を待って、
送ってくれたユーザに対して、何かしらの返信アクションを取るものです。

BOTというだけあって自動返信が基本です。
不特定多数に送るものではありません。

まぁ、メッセージを送ってくれたユーザの情報を記録してストックしていけば、近いことはできるかもしれませんが、あまり現実できではありませんね。

有名人のLINEとかにある、自動返信(BOT)を個人でも気軽に使えるようになるというイメージで良いかと思います。

BOT APIを利用する条件

LINEのBOT APIを利用できる条件は基本的には以下の2つです。

  • LINEアカウントを持っている。
  • SSL接続できるサーバーがある。(コールバック用URLはSSLのみ許可されています。)

また、現在はトライアル版で、先着10,000名様まで使わせてくれるようなので、気になる方はお早めに。
10,000名を超えるとどうなるかは知りません。

BOT APIに登録

(トライアル版)への登録手順を画像をペタペタ貼り付けて紹介していきます。

まずは、登録ページにアクセス。
BOT API Trial Accountのご紹介 | LINE BUSINESS CENTER

スクロールしていって下の方にある「利用開始」ボタンをクリック。
line api

LINEアカウントでのログインが求められます。入力して「ログイン」。
line api-2

スマホ等でLINEアプリを起動し、本人確認を行ってください。
line api-3

アカウント作成用のメールアドレスを登録します。(LINEのアカウントで利用しているアドレスと異なっても大丈夫です。)
line api-4

登録したメールアドレスに確認用のメールが送られてきます。
「LINE Business Center 登録用URL」をクリック。
line api-6

個人情報を登録する画面が開きます。
必須の箇所を入力して「確認ボタン」をクリック。
line api-7

登録が完了しました!
TOPへ戻ってください。
line api-8

これで個人の登録は完了です!

ビジネスアカウントの設定

個人の登録は完了したした。
が、Developer Toolを使うには、ビジネスアカウントが必要です。

TOPの真ん中にある「ビジネスアカウントを作成するボタン」をクリックします。
line api-13

写真とアカウント名を登録するだけで作ることができます。
line api-14

登録できたら、BOT API Trial Accountの「始める」ボタンをクリック。
line api-22

また、スクロールして下の方にある「利用開始」ボタンをクリックします。
line api

必要な値の取得

ビジネスアカウントで「利用開始」をクリックすると、BOT API Trial Accountと紐づけるページに飛ぶはずです。
「Create」ボタンで作りましょう。
line api-16

登録完了すると、大事な情報がのったページに飛びます。
line api-17

大事なのは、以下の3点。

  • Channel ID
  • Channel Secret
  • MID

LINEのサーバーとやり取りするときに使用するものです。
いつでも見れるのでメモする必要はありません。

大事な値なので誰にも教えてはいけませんよ!

ここまでが、LINE BOT APIを利用するために必要な登録作業になります。

必要な設定

つまずきやすいポイントを先にあげておきます。
わたしが実際に困ったところでもあります。

コールバックURLはセキュアなタイプじゃないとダメ

httpsのようにsslなどで暗号化されたurlじゃないと登録できません。
ですので、LINE APIを利用したい方は、https通信できる環境を用意しましょう。

コールバックURLの登録場所は、値が載っているページと同じです。
下のほうにある「Edit」ボタンを押して登録します。

line api-23

あと、Callback URLにポートも必ず指定する必要があります。
詳しくないのですが、暗号化された通信の場合はデフォルトが「443」になるんですかね?LINEの例も443だったし、わたしも443でできました。
ちなみに、ポートの書き方は、「https://hogehoge.com:433/hoge.php」みたいな書き方です。

サーバーのIPアドレスを伝える

もう一つ。
コールバックで設定したURLのIPアドレスを伝えてあげる必要があります。
URLというかそのファイルが置かれているサーバーのIPアドレスですね。

登録は、左上にある「Server IP Whitelist」ってところから行えます。
ここにサーバーのIPアドレスを入力しましょう。

line api-19

LINE BOT APIの使い方

ここまでやってやっと利用できるようになります。
ではコードを書いていきましょう。
(わたしはPHPしか使えないのでPHPで書いていきます)

LINE BOT APIの仕様が載ったドキュメントは以下のあたりにあります。
LINE Developers - BOT API - Overview

全部英語ですが、なんとなくで分かるはずです!

メッセージのコンテンツの内容を返信するBot

まったく捻りがないですが、メッセージ内容の種類を取得してそれを返信するというBotをサンプルとして作りました。
テキストメッセージなら、「Text Message」返信。
画像なら、「Image message」といった具合に。

ソースは以下です。

ざっくり解説すると、メッセージが送られてきたときにこのプログラムが実行され、php://inputにLINEからのデータが入ります。(この書き方は今回初めてしりました。)

JSONを解析して必要な情報を受け取り、ヘッダーやボディに内容を付加してPOSTでLINEのサーバーに送り返しているといった流れです。

<?php
/* アカウント情報 */
$channel_id = "[自分のChannel ID]";
$channel_secret = "[自身のChannel Secret]";
$mid = "[自分のMID]";

/* 送られてきたメッセージの情報を取得 */
$receive = json_decode(file_get_contents("php://input"));
$text = $receive->result{0}->content->text;
$from = $receive->result[0]->content->from;
$content_type = $receive->result[0]->content->contentType;

/* 返信 */
$header = ["Content-Type: application/json; charser=UTF-8", "X-Line-ChannelID:" . $channel_id, "X-Line-ChannelSecret:" . $channel_secret, "X-Line-Trusted-User-With-ACL:" . $mid];
$message = getContentType($content_type);
sendMessage($header, $from, $message);

/* メッセージを送る */
function sendMessage($header, $to, $message) {

$url = "https://trialbot-api.line.me/v1/events";
$data = ["to" => [$to], "toChannel" => 1383378250, "eventType" => "138311608800106203", "content" => ["contentType" => 1, "toType" => 1, "text" => $message]];
$context = stream_context_create(array(
"http" => array("method" => "POST", "header" => implode(PHP_EOL, $header), "content" => json_encode($data), "ignore_errors" => true)
));
file_get_contents($url, false, $context);
}

/* コンテントタイプの種類分け */
function getContentType($value) {

$content_type = "";
switch($value) {

case 1 :
$content_type = "Text message";
break;
case 2 :
$content_type = "Image message";
break;
case 3 :
$content_type = "Video message";
break;
case 4 :
$content_type = "Video message";
break;
case 7 :
$content_type = "Location message";
break;
case 8 :
$content_type = "Sticker message";
break;
case 10 :
$content_type = "Contact message";
break;
default:
$content_type = "unknown";
break;
}

return $content_type;
}

動作画面としてはこんな感じです。
line api-26

アイデアがあれば色々楽しめそうですね。

まとめ

LINE BOT APIの登録手順から簡単な使い方まで紹介しました。
色々試して遊んでくださいね!