どうもはじめまして。サービスデリバリーセンターの岩崎です。
以前のとある活動で LINE Messaging API + Google Apps Script を使ったサンプルアプリを作って遊んでみましたので、そのときの情報を紹介します。

・LINE Messaging APIとは
LINEが提供しているAPIであり、APIを通じて自分が作成したプログラムとLINEサービスと連携することが出来ます。例えば、LINEから受信したメッセージを元にプログラムが情報を収集し、編集した情報をLINEに戻すようなBOTアプリを作成することが可能です。
機能制限付きですが、一部サービスは無料で使用可能です。(詳しくはコチラ)

・Google Apps Scriptとは
Googleが提供するJavascriptベースのスクリプト開発環境です。
Googleサービスを操作、他のWebAPIの呼び出し、自分自身をWebAPIとして公開等、様々なことが出来ます。Googleサービス上で実装からAPI公開まで行うことが出来、別途サーバ等を用意することなくWebAPIを公開することが可能です。(詳しくはコチラ)

BOTアプリを作ってみました

今回は、LINEとは別の無料APIを利用してBOTアプリを作成してみました。Google Apps Scriptから各種APIを呼び出して、取得・編集したメッセージをLINEに返却するBOTアプリです。

【BOTアプリの構成図】

①LINEからメッセージを送信
②LINE Messaging APIがメッセージを受信して、Google Apps ScriptのAPIを呼出
③Google Apps ScriptのAPIから他のAPIを呼出
④他のAPIからの戻り値を受け取り、LINE Messaging APIにメッセージを送信
⑤LINE Messaging APIがメッセージを受信して、LINEにメッセージを送信
⑥LINEが受信したメッセージを表示

作ってみたBOTアプリ①:docomo AI チャットBot

・利用したAPI:LINE Messaging API、雑談対話API(docomo Developer support)
・概要:LINEでdocomo AIとお話することが出来ます。巷で有名な り○な みたいなものですね。
※ 上記で利用している雑談対話APIは2018年6月末でサービス終了するそうです。代替サービスとして自然対話APIというものが提供されていますが、こちらは2018年10月から有料になるとのこと…。残念ですが、無料で利用できるのは後少しです。無料で試したい方はお早めに。

作ってみたBOTアプリ②:天気情報取得Bot

・利用したAPI:Weather API(Openweathermap)
・概要:LINEで位置情報を送ると、その場所の天気情報を表示します。Weather APIは全世界に対応しているので、どんな場所の天気情報でも調べることが可能です。あまり知ることがない海外の天気でも気軽に調べられて楽しいです。

作ってみたBOTアプリ③:ぐるなび情報検索Bot

・利用したAPI:LINE Messaging API、レストラン検索API(ぐるなびWebサービス)
・概要:LINEから送信した位置情報、もしくはキーワードからぐるなびの情報を検索し、検索結果を表示します。店画像ファイル、簡単な紹介文が表示されます。キーワードからサクッと情報を調べられるのが便利です。

LINE Beaconも試してみました

LINE Messaging APIには、LINE Beaconサービスを扱えるAPIも含まれています。(詳しくはコチラ)
BOTアプリを作成したついでに、LINE Beaconを使った簡単なサンプルアプリも作ってみました。

【LINE Beaconサンプルアプリ概要図】

①LINEアプリがBeaconを検知して、LINE Messaging APIを呼出(今回はMacをBeacon発信機として実験しました)
②LINE Messaging APIからGoogle Apps ScriptのAPIを呼出
③Google Apps ScriptからLINE Messaging APIに簡易メッセージを送信
④LINE Messaging APIがメッセージを受信して、LINEにメッセージを送信
⑤LINEが受信したメッセージを表示

サンプルアプリ紹介動画

わかりづらいですが、MacでLINE Simple Beaconというソフトを使用してLINE Beaconを発信し、iPhoneがBeaconを受信している動画です。Beacon受信後、Google Apps Scriptから簡易的なメッセージを返却しています。

LINE Beaconの課題点

LINE Beaconを触ってみて下記2つの課題が見つかりました。まだ発展途上のサービスのようです。

  • enter(ビーコンの受信圏内に入る)イベントは検知できるが、leave(ビーコンの受信圏内から出る)イベントが検知できない。(leaveイベントの機能は存在しているが、非推奨&動作不安定)
  • enterイベントの受信可能距離をコントロール出来ない。iBeacon等では受信側の受信電波強度を計測することである程度の受信可能距離をコントロールすることが出来たが、LINE Beaconではそのような機能が無さそうなためコントロールが出来ない。

最後に

Webサービスの扱いに慣れていない自分でも、各種サービス・APIを組み合わせて利用することで簡単にアプリを作成することが出来ました。APIの扱いも簡単であり、かつLINEのUIをそのまま使用することが出来るので、素早くアプリを開発することが出来ます。今更ですが、マッシュアップ的な開発の重要性を実感することが出来ました。(スピード感が求められる昨今の開発現場では特に)

そして、中でもLINE Beaconに対して興味を持ちました。Raspberry PiでもLINE Simple Beaconを起動して発信機として扱うことが出来るそうなので、それらを組み合わせれば安く・手軽にLINE Beaconのアプリ・サービスを作成することが出来ます。次回はRaspberry Pi + LINE Simple Beaconを使って何か作ってみたいと思います。