この記事は LINE Developer Community 主催のイベントである、LINEDC Showcase:LINEとAWSで作るDevelopers.IO Cafeのレシピ で話す内容の補足資料です。後で見やすいにスライド対応はしていません。
どこのドキュメントを読めばよいか
基本は公式の 2 箇所です。まず概要を把握して、必要に応じて API 詳細を見ましょう。
- サービスの概要は、ドキュメント 参照
- API 詳細は API リファレンス 参照
概要 : LINE で何ができるのか
LINE プラットフォームで開発を行う場合、始め方は二通りあります。
- 実現したいアイデアが既にあって実装したい
- まだアイデアはないが、何ができるか知りたい
いずれの場合もまずは LINE プラットフォームで何ができるかを知ることをお勧めします。それによりアイデアがより広がったり、無駄な実装を避けることができます。
2020 年 2 月 12 日時点で、一般の開発者が開発が行える主な LINE のサービスは以下の通りです。
スマートフォン向け LINE アプリ用
スマートフォンおよび Web、ネイティブアプリなどに組み込み
スマートスピーカー用
この他にも LINE Ads や LINE Things、LINE ビーコンや Social、法人向けのサービスなどもありますが、まずは上記サービスを抑えておくとよいでしょう。
また、今後「ミニアプリ」なる機能が出るらしいので、アンテナを張っておいてください。
LINE ボット
もはや説明不要なレベルで認知されているチャットボットサービスです。基本的に以下のことができます。
- ユーザーからのメッセージに応答
- ユーザーからのアクションに応答
- ボットからユーザーにプッシュ通知
ボットは 1 対 1 のチャット、グループおよびトークルームに対応しています。
以下に主な機能を紹介しますが、詳細はドキュメントを読んでください。
メッセージに応答
ユーザーは色々なメッセージをボットに送ってきます。これらのメッセージに対して適切に応答するよう開発できます。
- テキスト
- 絵文字、スタンプ
- 画像、動画
- 位置情報、等
アクションに応答
ユーザーが明示的に送ってくるメッセージ以外にも、ボットから送ったボタンをクリックしたり、メニューをクリックするなどのアクションを行った際も、応答するように開発できます。
プッシュ通知
チャットボットは、ユーザーのメッセージやアクションに対して返信することが基本ですが、一定時間を過ぎてから返信したり、お知らせのようにボット側から情報を発信する場合は、プッシュ通知という機能を使います。
プッシュ通知はユーザーにメッセージを送れる便利な機能である一方、課金対象でもあるため、利用シーンを慎重に検討する必要があります。料金のプランは今後も変わる可能性がありますが、現時点のものは以下のサイトで確認できます。
料金プラン: https://www.linebiz.com/lp/line-official-account/plan/
メッセージの種類
ボットから応答したりプッシュするメッセージは、多くの種類をサポートしている点は LINE の魅力です。
- テキスト、音声、動画、スタンプ、絵文字などの通常のメッセージ
- ボタンやカルーセルを使えるテンプレートメッセージ
- テンプレートメッセージよりリッチなフレックスメッセージ
リッチメニュー
チャットボットの課題として、ユーザーがボットに何を話しかけると良いか分からない問題があります。
リッチメニューを使うとこの問題がスマートに解決できます。
リッチメニューは非常に柔軟な機能を提供します。
- 全ユーザーに表示される既定のメニューを設定できる
- ユーザー単位でリアルタイムに動的に変更できる
- メニューの高さを 2 段階から選択できる
- メニュー上のタップエリアを最大 20 個指定できる
- LINE ボットアカウント毎に最大 1000 ものメニューを登録できる
URL スキーム
聞きなれない言葉かもしれませんが、ユーザーがワンタップでカメラを起動したり、位置情報を起動することができます。LINE に不慣れなユーザーに対して、高度な操作を要求する場合に非常に便利です。
慣れていないと、位置情報送るなどの操作も、意外とできないものです
LIFF アプリ
LIFF (LINE Front-end Framework) は LINE アプリ内で起動するブラウザや、サファリやクローム、マイクロソフトエッジなどの外部ブラウザで動作する仕組みで、以下のことができます。
- LINE ログインを行う
- LINE ユーザーの情報を取得可能
- LINE アプリ内で開いた場合、メッセージの送信が可能
- QR コードリーダーを起動したり、指定した URL を開く
元々 LINE ボットの機能追加として公開された機能でしたが、現在は独立したサービスとして機能します。LINE ID を使ったサインイン (LINE ログイン) が簡単に実装でき、またプロファイルを取得できるのは便利です。
また引き続きボットの一部として動作し、LINE ボットでは足りない、あと少しの機能を補完することも簡単にできます。
これまで HTML/JavaScript/CSS で開発した経験がある方には強力な武器となるでしょう。

LINE Notify
任意の Web サービスと連携して、イベント駆動で通知を行う仕組みを提供します。例えば GitHub と連携してみたり、IFTTT と連携することも簡単です。
1 時間で呼び出せる上限が 1000 回であったり、個人で登録するようなサービスであるため、主に開発者向けのサービスだと思いますが、使いどころがハマればとても便利です。プッシュ通知として商業利用する場合は、LINE 公式アカウントを検討する必要があります。
具体的な内容は手順は以下の記事も参考にしてみてください。
dotstudio: LINE NotifyとGitHubを連携してSlackから移行してみました。
LINE ログイン
昨今多くのサービスでは Yahoo ログイン、Facebook ログイン、Google ログイン、Microsoft アカウントなど、多くの認証連携が行われますが、LINE もその例外ではなく、LINE ログインを提供しています。
既に紹介した LIFF を使う事もできますが、iOS/Android のネイティブアプリなどにも対応するため、ユーザー認証をしたい場合は LINE ログインを試してください。当然 LINE 開発者コンソールなどのログインも LINE ログインです。
LINE Pay
キャッシュレス競争の渦中にある LINE Pay ですが、開発者が LINE Pay を使った決済を簡単に実装することができます。現在バージョン 3 が公開され、オンライン決済だけでなく、QR コードを使ったオフライン決済も対応しています。
LINE ボットと組み合わせたり、独自の Web サービスに組み込んだりと柔軟に使えます。
福岡市で導入された事例は有名で、似たようなことが自分たちでもできると思うとわくわくです。
公共施設へLINE Pay導入 - 福岡市の公共施設へ唯一導入されたQRコード決済サービス「LINE Pay」
Clova スキル
「ねぇクローバー」でおなじみのスマートスピーカーに独自スキルを追加できます。既に多くのアプリがストアに公開されており、ハッカソンなどでも活躍する場が増えています。
Clova の開発は以下の機能が既にサポートされています。
- 自然言語解析
- 発話者の意図の読み取り
- キーワードの抜きだし
- ストアへの公開審査
- 複数のクローバープラットフォームへの対応
- 多言語対応(発話)
こちらも LINE ボットとの連携に強みがあり、Clova 単体のスキルだけでなく、シームレスな LINE 連携がユーザー体験を押し上げるため魅力です。
まずは開発者登録
何をするにも開発者登録です。かならず LINE アカウントが必要となるため、自分のアカウントを使うか、専用のアカウントを用意しましょう。大半の人は自分のアカウントをそのまま使っています。
LINE 開発者サイト: このサイトより画面に従って登録してください。
API リファレンスを眺める
どのサービスも、多くは以下の 3 パターンです。
- LINE プラットフォームから、自分の Web API が呼び出される (Webhook)
- LINE プラットフォームの API を呼び出して処理を行う
- LIFF やフレックスメッセージなど UI 要素がある場合、画面をデザインする
API リファレンスは一見、膨大な情報の羅列に見えますが、概要と対応するように記述があるため、やりたいことを探すことも、出来ることを探すことも、容易に行えます。開発しないといけないものは独自の Web API であることが多いです。
自分の Web API が呼び出される
LINE ボットに対してユーザーがメッセージを送信した場合や、クローバーに対してユーザーが発話した場合など、処理が必要な場合に LINE プラットフォームより情報が送られてきます。基本的な処理のフローは同じです。
- データの送信元を検証する
- データの中身を解析する
- 中身に応じて処理を行う
LINE の Web API を呼び出す
行う処理が決まれば、以下の手順で API を呼び出します。
- API 呼び出しに必要な認証などを行い、アクセストークンを取得する
- 取得したアクセストークンと必要なデータを渡して API を呼び出す
- 処理結果に応じて必要な対応をする
API 呼び出しは常に成功するとは限りません。応答結果によって処理を行う必要があります。
Web サービスのホスト
最後に多くの場合、開発した Web API をクラウドなど外部にホストする必要があります。
私のお勧めは当然、多くの言語を柔軟にサポートする Microsoft Azure ですが、Heroku や GCP、AWS など使い慣れたものを使ってください。
私もここ Qiita に多くの記事を投稿しているので、参考までにどうぞ。
どこから始めるか
コードを書きたい場合、多くのサービスはサンプルアプリが存在します。また各種言語の SDK が存在します。
C# は残念ながら公式がありませんが、コミュニティで作成しているので是非お試しください。
GitHub: LINE 公式レポジトリ
GitHub: LINE Developer Community レポジトリ
また Qiita やはてぶにも多くの「やってみた」系記事があるので試してください。
情報収集がしたい場合は、コミュニティに参加してください。
Connpass: LINE Developer Community
Facebook: LINE Developer Community
質問がある場合は Q&A フォーラム へどうぞ。
まとめ
LINE プラットフォームは様々な事ができるため、はじめはその内容に圧倒されるかもしれませんが、一つ一つ理解していけば、攻略は必ずできます。是非アイデアを形にするプラットフォームとして検討してみてください。