# LINE Front-end Framework

LINE Front-end Framework(LIFF)は、LINEが提供するウェブアプリのプラットフォームです。このプラットフォームで動作するウェブアプリを、LIFFアプリと呼びます。

LIFFアプリを使うと、LINEのユーザーIDなどをLINEプラットフォームから取得できます。LIFFアプリではこれらを利用して、ユーザー情報を活用した機能を提供したり、ユーザーの代わりにメッセージを送信したりできます。

LIFF v2で追加された機能については、「リリースノート」を参照してください。

OpenChatでのLIFFアプリの利用はサポートされていません

現在のところ、OpenChatではLIFFアプリの利用は正式にサポートされていません。たとえば、LIFFアプリからプロフィール情報を取得できない場合があります。

# 推奨環境

LIFFの推奨環境は以下のとおりです。

なお、LIFFアプリをLIFFブラウザで開いた場合と、外部ブラウザで開いた場合では、使用できる機能が異なります。たとえば、liff.scanCode()は、外部ブラウザでは利用できません。詳しくは、「LIFF v2 APIリファレンス」を参照してください。

# LIFFアプリをLIFFブラウザで開く場合

項目 推奨環境 最低動作環境
iOS 最新バージョン。WKWebView (opens new window)が使用されます。 LINEの推奨環境に準ずる。 *
Android 最新バージョン。Android WebView (opens new window)が使用されます。 LINEの推奨環境に準ずる。 *
LINE 最新バージョン
  • iOS:LINEバージョン10.17.0
  • Android:LINEバージョン11.5.0
動作は保証されませんが、上記未満のバージョンのLINEでもLIFFアプリが一部動作する場合があります。詳しくは、LINEの推奨環境を参照してください。 *
LIFFアプリは、OS、LINEともに最新バージョンの環境での利用を推奨します

LIFFアプリは、OS、LINEともに最新バージョンの環境での利用を推奨します。上記の「最低動作環境」以降のバージョンでも、機能や設定によっては動作しない場合や画面が正常に表示されない場合があります。

* LINEの推奨環境については、ヘルプセンターの「LINEの推奨環境を教えてください (opens new window)」を参照してください。

# LIFFアプリを外部ブラウザで開く場合

以下のブラウザの最新バージョンで動作します。

Microsoft Edge、Google Chrome、Firefox、Safari

# LIFFブラウザ

LIFFブラウザはLIFFアプリ専用のブラウザです。ユーザーがLINEでLIFFのURLを開くと、LIFFブラウザでLIFFアプリが開きます。

LIFF browser

LIFFブラウザはLINE内で動作するため、LIFFアプリはユーザーにログインを促さなくてもユーザーデータにアクセスすることができます。また、LIFFブラウザはLIFFアプリを共有したり、LIFFアプリから友だちにメッセージを送るなど、LINE特有の機能を提供しています。

# LIFFブラウザの仕様

LIFFブラウザは、iOSではWKWebView (opens new window)、AndroidではAndroid WebView (opens new window)を利用しています。そのため、LIFFブラウザの仕様および動作についてもこれらの仕組みに準拠するものとなります。

# LIFFブラウザのキャッシュ

LIFFブラウザが利用しているWKWebView (opens new window)Android WebView (opens new window) は、表示したコンテンツの内容を、Cache-Control (opens new window) などのHTTPヘッダーの指示に従って、キャッシュとして保存して利用する場合があります。

LIFFブラウザにおけるキャッシュの制御については、Cache-Control (opens new window) などのHTTPヘッダーを用いて行ってください。

キャッシュの削除について

LIFFブラウザに保存されたキャッシュを明示的に削除することはできません。

# LIFFブラウザの画面サイズ

LIFFブラウザは、以下の3つの画面サイズで表示できます。

画面サイズ

画面サイズは、LIFFアプリをチャネルに追加するときに指定します。詳しくは、「LIFFアプリをチャネルに追加する」を参照してください。

# シェアボタン

LIFFアプリの画面サイズを「Full」に指定している場合、ヘッダーには、デフォルトでシェアボタンが表示されます。

このボタンを使って、LIFFアプリをユーザーの友だちにシェアできます。 シェアボタンをタップすると、以下のオプションが、ユーザーのLINEの設定言語で表示されます。

項目 説明
シェア 現在開いているページのURLを、LINEメッセージでシェアします。
更新 現在開いているページを再読み込みします。
動作環境

シェアボタンは、iOS版LINE、Android版LINEのバージョン10.12.0以降で表示できます。

URLのシェアに失敗する場合があります

シェアボタンでは、liff.permanentLink.createUrl()メソッドを実行して、シェアするURLを取得しています。そのため、現在のページのURLがLINE Developersコンソールの[エンドポイントURL]に指定したURLで始まらない場合、URLを取得できずシェアに失敗します。

シェアボタンを非表示にする

LINE DevelopersコンソールでLIFFアプリの[モジュールモード]をオンにすると、シェアボタンを非表示にできます。 詳しくは、「LIFFアプリをチャネルに追加する」を参照してください。

# 開発上のガイドライン

LIFFアプリは以下のガイドラインに従って開発してください。

ユーザー情報を安全に取り扱ってください
  • LIFFアプリおよびサーバーでユーザー情報を使用する場合、LIFFアプリでこれらのユーザー情報を正しく処理しないと、なりすましやその他の種類の攻撃に対して脆弱になります。LIFFアプリを開いたユーザーのユーザー情報を、LIFFアプリおよびサーバーで安全に使用する方法については、「LIFFアプリおよびサーバーでユーザー情報を使用する」を参照してください。
  • LIFFアプリで開くコンテンツのURLのURLフラグメントには、アクセストークンやユーザーIDが含まれます。外部にURLが漏洩しないように注意してください。
LIFFアプリ初期化時の注意事項

liff.init()メソッドが返すPromiseオブジェクトがresolveする前に、サーバーやフロントエンド側の処理などでURLを変更しないようにしてください。URLを変更すると、INIT_FAILEDが返され、LIFFアプリを開けません。 そのほか、LIFFアプリ初期化時の注意事項について詳しくは、「LIFFアプリを初期化する」を参照してください。

  • LIFFアプリをSPA(Single Page Application)で構築する場合、LIFFはフラグメントを用いたルーティングとは相性が悪いため、History API (opens new window)を利用して実装してください。
  • 以下のようなデバイスまたはOSの機能を利用するAPIは、必ずユーザー操作をきっかけにして実行されるように実装してください。
    • 位置情報の取得
    • カメラへのアクセス
    • マイクへのアクセス
  • ユーザーの同意なく、cookie、localStorage、またはsessionStorageを使ってユーザーをトラックしたり、LINEのユーザー情報と外部セッション情報を結びつけたりしないでください。
  • LIFFアプリでcookie、localStorage、またはsessionStorageを利用できますが、将来的に利用が制限される可能性があります。
  • テスト段階のLIFFアプリに対するアクセス権限は、LIFFアプリ側で制限してください。
  • LIFFアプリとLIFFアプリ内で開くコンテンツのURLスキームは、httpsである必要があります。コンテンツのURLスキームがhttpの場合は、LINE内ブラウザで表示されます。この場合、LIFFアプリとしてチャネルに追加されていても、LIFFアプリとして動作しません。

# 作業の流れ

LIFFアプリをエンドユーザーが利用できるようにするには、以下の手順を行います。

  1. LIFFアプリを追加するチャネルを作成する
  2. LIFFスターターアプリを試してみる、またはLIFFアプリを開発する