
2025.02.18
AIが「嘘のデータ」を返してしまう アルペンが生成AI導入で味わった失敗と、その教訓
LIFF/LINEミニアプリ超入門 - 特徴と実践的な開発(全1記事)
提供:LINE株式会社
リンクをコピー
記事をブックマーク
胡ケイブン氏(以下、胡):それでは本日のセッションを始めたいと思います。初めまして、LIFFやLINEログインなどの開発者向けのデベロップメントプロダクトのプロジェクトマネージャーを担当している胡と申します。これまではQAリードを担当していましたが、2020年の4月にPMに転向しました。
池田泰樹氏(以下、池田):初めまして。LIFFやLINE Design System Globalの開発を担当している、フロントエンドエンジニアの池田と申します。本日はよろしくお願いいたします。
胡:本日は「LIFFの超入門」と題して、前半は私からLIFFおよびLINEミニアプリの特徴、事例や新機能などを紹介します。後半では実際にLIFFアプリをどう開発するのか、LIFF SDK開発者の池田さんより手順を解説してもらいます。よろしくお願いします。
それでは私のパートに移ります。LINE Front-end Framework、通称LIFFとは、LINEが提供するWebアプリのプラットフォームです。WebアプリにLIFF SDKを組み込むことでLINEアプリと連携ができ、LINEの機能や情報を利用したWebアプリを作成できます。このLIFFプラットフォームで動作するWebアプリは、大きく分けて「LIFFアプリ」と「LINEミニアプリ」の2種類があります。
LIFFアプリとLINEミニアプリの違いをテーブルにまとめてみました。どちらもLIFF SDKを搭載しているのですが、LINEミニアプリを開発するにはLINEによる審査および認定が必要です。審査に通過したLINEミニアプリだけがLINEで公開されるため、ユーザーは安心してLINEミニアプリを利用できます。
その他動作環境、サービスメッセージ利用可否の違いはありますが、時間の都合上、詳細な説明は割愛いたします。
続きまして、LIFFの活用事例を紹介していきます。サービス提供者によって、大きく「LINEファミリーサービス」と「サードパーティ開発者」の2種類に分けられます。みなさんお馴染みの、LINE公式アカウントやLINE NEWS、LINEのスタンプショップも、実はLIFFを利用しています。LINEファミリーサービスの場合、右上のクローズ、アクションボタンの他にもお気に入りや設定ボタンなど、多様なUIコンポーネントをヘッダーに実装しています。
サードパーティアプリの事例として、4つのサービスを紹介したいと思います。まずはプレイルーム。LINEを利用して離れた友だちとリアルタイムで対戦できる無料パーティゲームアプリとして、友だち6万人を獲得しています。同じくマルチプレイアプリですが、LINEだけでみんなでビンゴができるTHE BINGOは、オンライン飲み会や忘年会で活躍しています。
子どもの塾や習い事の集金をLINEで実現するenpayは、LIFFを利用して過去の支払い履歴をうまくまとめているため、ユーザー向けに利便性を向上させています。最後に、高齢でリテラシーが高くないユーザー向けのスマート相続アプリは、視認性を向上させるUIと入力補助などの工夫が施されています。
ここからLINEミニアプリの事例を紹介します。飲食店では、テーブルオーダー機能をLINEミニアプリを通して実現しています。消費者が入店したチェックインから注文、決済一連のオペレーションは、すべてLINEミニアプリ上で完結できます。コロナ禍において店舗スタッフとお客さまが非接触になるという点で、メリットがあります。
続きまして、美容院予約および会員証アプリの事例です。会員登録と会員カード、クーポンを1つのLINEミニアプリで完結します。サービスメッセージを通して、決済の内容を確認できます。またLINE公式アカウントとの連携が可能なので、クーポンの配信も実施しています。リテンション増加の効果が見えます。
さて事例を紹介したところで、ここから今年(2021年)にリリースした新機能の紹介を含め、LIFFというプラットフォームの特徴と強みを紹介していきたいと思います。画面に表示されているとおり、大きく6つのトピックがあります。
順番に説明していきます。LIFFはLINEログインを統合しています。ここで動作確認用のプレイグラウンドアプリを用意していますので、実際の動作を見てみましょう。
外部ブラウザの例では、LIFFアプリ起動後にLIFFログインを実行すると、LINEログインのログイン画面に遷移します。メールアドレスなどの情報を入力して送信するとLINEと連携できます。こうして煩雑な設定なしで、認証・認可フローを経て、LINEプラットフォームからユーザーのプロフィール情報を安全に取得できるメリットがあります。
実際のサンプルコード上でも、LIFFを初期化したあとliff.login()メソッドをコールするだけで、ログイン処理が完了します。非常なシンプルなコードで、LINEにログインできます。
次にあまり知られていないかもしれませんが、LIFFはクロスブラウザーをサポートしています。LIFF SDKバージョン2より、LINEアプリ以外の環境でも対応できるようになりました。多くのLIFF APIは、PCのブラウザーと互換性があるので、通常のWebブラウザー上でも動作します。
次にLIFFの独自機能として、Share Target Pickerが挙げられます。Share Target Pickerとは、送信先を選んでLINEの友だちにメッセージを送信できる機能です。自分以外の友だちにもメッセージを送信できますので、この機能を利用してユーザーにサービスを連携させたり情報を拡散させたりできる、ソーシャル要素をもたせることも可能です。
そんなパワフルなShare Target Pickerですが、送り先を特定するなど、今後もさらに機能を追加していく予定です。
続いて、自前で実装しなくてもさまざまなユーティリティを利用できるというのもLIFFの1つの強みです。ここで、10月頭に新たにリリースされたscanCodeV2を紹介します。従来のスキャンコードであるLINEアプリのカメラを起動する方式と比較して、WebRTCを利用したscanCodeV2は、LIFFブラウザ上でWebカメラを起動します。
LINE Developersコンソールで設定を有効にすれば利用できるので、サービス側は自前でコードリーダーを実装するコストが省けます。
次に、ユーザー認証タスクに集中させることができる新機能として、LIFFサブウィンドウを紹介したいと思います。LIFFの仕様としては複数のLIFFブラウザを同時に利用することはできませんが、サブウィンドウは既存のLIFFブラウザの上に、さらにもう1つのモーダルウィンドウを被せる機能です。
ユーザーの集中を切らすことなく、また一時的な機能を提供する途中に、ユーザーが意図をせずにサービスから離脱してしまう問題も解消されます。画面のサンプルのように、サブウィンドウには複数の画面サイズがあるので、利用シーンに応じて指定することが可能です。現在、LINEサービスのみ利用できる社内限定機能ですが、パブリックAPIとして近日公開する予定でいます。
次に、今年(2021年)リリースした新機能の1つとしてLINEミニアプリチャネルのチャネル同意の簡略化を紹介します。もともとLINEミニアプリに初回アクセスするたびに、ユーザーのプロフィール情報を取得するために都度同意画面が表示されますが、チャネル同意の簡略化を有効にしたLINEミニアプリでは、同意プロセスを初回のみ行うことで、別のLINEミニアプリに初めてアクセスする時は同意画面をスキップして、すぐにサービスの利用を開始できるようになります。
その他、かゆいところに手の届く機能をいくつか用意しています。LIFFアプリの遷移元のreferrerをURL上から取得できるliff.referrerクエリパラメータを始め、LIFFのダークモード対応を始めました。こちらも近日公開する予定です。かなり駆け足ですが、私からの紹介は以上となります。
時間の都合上、LIFFの特徴や新機能を簡単に紹介することしかできませんが、LIFFをより詳しく知りたいという方はLINE Developersの関連ドキュメントを参照してください。
このあとの時間は池田さんにバトンタッチして、LIFFの開発手順について説明していきます。池田さんよろしくお願いします。
池田:胡さんありがとうございます。これからLIFF開発について話していきたいと思います。LIFFアプリの開発を大きく2つのステップに分けました。1つ目は、LINE DevelopersコンソールでLIFFを登録すること。そして2つ目は、LIFF JavaScript SDKを使って実際にアプリケーションを開発することです。
まずLIFFアプリの登録についてですが、LINE Developersコンソール上でProvider、Channel、そしてLIFFを作る必要があります。左側が右側の親になっていて、3つのステップに分かれていますが、LINE DevelopersコンソールはGUIで特に難しいことはないので、簡単に設定できると思います。
こちらは、ProviderとChannelを作ったあとのChannelの中の画面です。LIFFのタブ上でこちらのAddボタンでLIFFを追加できます。
ボタンを押すとこのような画面になります。上から簡単に説明すると、まずはアプリの名前を設定でき、そして次がアプリのサイズを設定できます。右側の画像を見てもらうとわかりやすいと思います。次にエンドポイントURLですが、ここはご自身で作成されたWebアプリのURLを入力します。
次にスコープです。こちらに設定した内容がユーザーに権限の譲渡をお願いするユーザー同意画面に表示されることになります。Bot lijk featureは、簡単にいうとLINE公式アカウントに関するオプションです。
次にScan QRはLIFFのscanCode APIを使えるようにするオプションです。Module modeはヘッダーにシェアボタンを表示するかどうかのオプションです。以上の内容を設定して登録を完了するとLIFF IDなどが発行されます。
これで準備が終わったので、次は実際にLIFF SDKを使ったWebアプリの開発について話していきます。まずLIFF SDKをプロジェクトにインストールしてもらう必要がありますが、上のようにCDNを使うこともできますし、Node.jsを使われる場合は、npmやyarnを使ったインストールもできます。お好みのほうをお使いください。
インストールが終わったら、SDKを使ってアプリ内でLIFFの初期化を行うことでLIFFアプリとして動作するようになります。LIFF SDKのliff.initメソッドに、先ほど登録したLIFF IDを渡して初期化が完了すると、LIFFが提供するAPIを簡単に使えます。こちらの例は先ほど公表しましたが、ログインしていない場合はliff.login API、ログインしている場合はliff.getProfile APIを呼び出しています。
1つ懸念点として、こちらの例のように、Vanilla JavaScriptを使う時はけっこうわかりやすいと思うのですが、Next.jsやNuxt.jsのWebフレームワークを使用する場合、どう書くのが最適かわかりづらい場合があるかもしれません。その場合のために、LIFFではstarterを複数用意していまして、そちらを利用してもらうと、より簡単に開発を始められると思います。
こちらの動画で流れている@line/create-liff-appは、まだ試作段階ですが、各フレームワークでLIFFを使う場合のボイラープレートを簡単にインストールできるよう、提供を予定しています。こちらの動画では、アプリの名前、そしてテンプレートを選んで、使うパッケージマネージャーを指定して使うプロジェクトをインストールしました。
そしてプロジェクトにインストールして開発のコマンドを打ち、プロジェクトが立ち上がるまでを紹介しています。
開発がひととおり終わりましたら、作成したWebアプリをデプロイします。HerokuやNetlifyなど好きなものをお使いください。今回自分はVercelを使いました。LINE DevelopersコンソールでエンドポイントURLが正しいかご確認ください。
あとは、実際にLINEのトークルーム上でデバッグします。もちろん、外部ブラウザでの利用も可能です。LINE Developersのコンソール上でLIFF URLを使用できるので、それをトークルームに貼り付けてもらって、動きを確認できます。
こちらは、実際に先ほど見せたLIFFのscanCodeV2 APIを使用したLIFFアプリになります。
LIFFアプリ開発の概要は、以上となります。LIFFアプリの開発のハードル自体はとても低いと思っているので、ぜひ試していただいたら幸いです。
そう言いつつも、LIFFアプリの開発においてペインポイントがないわけではありません。ドキュメンテーションやデバッキングのissue、またカスタマイズ性の難しさなどのさまざまなペインポイントが挙げられています。実際にLIFFアプリを開発すると、直面するかもしれない問題です。このような開発者体験を改善する話を、このすぐ次のセッションで詳しく話しています。「すべてのLIFFアプリ開発者の開発体験を向上させるために」という題名になっていますので、興味のある方はぜひ聞いてみてください。
以上になります。ご清聴ありがとうございました。
LINE株式会社
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
限られた時間で成果を上げるドイツ式仕事術
2025.01.21 - 2025.01.21
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29