LIFF v2 APIリファレンス
動作環境
LIFF v2の動作環境については、『LIFFドキュメント』の「概要」を参照してください。
なお、LIFFアプリをLIFFブラウザで開いた場合と、外部ブラウザで開いた場合では、使用できる機能が異なります。たとえば、liff.scanCode()は、外部ブラウザでは利用できません。詳しくは、各クライアントAPIの説明をご覧ください。
現在のところ、OpenChatではLIFFアプリの利用は正式にサポートされていません。たとえば、LIFFアプリからプロフィール情報を取得できない場合があります。
LIFF SDKのエラー
LIFF SDKのエラーはLiffErrorオブジェクトで返されます。
エラーメッセージは予告なく変更されることがあるため、エラーをエラーメッセージの完全一致で識別すると、LIFFアプリが正常に動作しなくなる可能性があります。エラーを識別する際は、エラーメッセージが変更されてもLIFFアプリが正常に動作するよう、エラーコードとエラーメッセージの両方を参照してください。
なお、エラーコードによってエラーを一意に識別できるよう、将来的に改善する予定です。
例
LiffErrorオブジェクト
code
String
エラーコード
message
String
エラーメッセージ
cause
Unknown
エラーの原因
エラー内容
| エラーコード | 説明 |
|---|---|
| 400 | リクエストに問題があります。リクエストパラメータとJSONの形式を確認してください。 |
| 401 | Authorizationヘッダーを正しく送信していることを確認してください。 |
| 403 | APIを使用する権限がありません。ご契約中のプランやアカウントに付与されている権限を確認してください。 |
| 429 | リクエスト頻度をレート制限内に抑えてください。 |
| 500 | APIサーバーの一時的なエラーです。 |
| INIT_FAILED | LIFF SDKの初期化時にエラーが発生しました。 |
| INVALID_ARGUMENT | 無効な引数が指定されました。 |
| UNAUTHORIZED |
|
| FORBIDDEN |
|
| INVALID_CONFIG | 無効な設定です。
|
| INVALID_ID_TOKEN | IDトークンが正規のものであることを確認できませんでした。 |
| EXCEPTION_IN_SUBWINDOW | サブウィンドウで問題が発生しました。
|
| UNKNOWN | 不明なエラーです。 |
liff.id
liff.init()に渡したLIFFアプリID(String型)を保持するプロパティです。
liff.init()を実行するまでは、nullです。
例
liff.ready
LIFFアプリ起動後、liff.init()の実行が初めて終了したときにresolveするPromiseオブジェクトを保持するプロパティです。
liff.readyを利用すると、liff.init()の終了を待って、任意の処理を実行できます。
liff.readyは、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
例
liff.init()実行中に何か問題が起きても、liff.readyはrejectしません。また、LiffErrorオブジェクトを返すこともありません。
liff.init()
LIFFアプリを初期化します。
このメソッドを実行すると、LIFF SDKの他のメソッドを実行できるようになります。LIFFアプリは、ページを開くたびに必ず初期化する必要があります。同じLIFFアプリ内での遷移であっても、新たにページを開く場合にはliff.init()メソッドを実行してください。
LIFFアプリが正しく初期化されていない状態でLIFFの機能を使用した場合、それらの動作は保証対象外です。
liff.init()メソッドを実行するとき、LIFF SDKは現在のユーザーのアクセストークンやIDトークンをLINEプラットフォームから取得します。
- LIFF SDKが取得したアクセストークンを利用するには、「liff.getAccessToken()」を呼び出します。
- LIFF SDKが取得したIDトークンのペイロードを利用するには、「liff.getDecodedIDToken()」を呼び出します。
LIFFアプリ初期化時の注意事項
LIFFアプリを初期化する際の注意事項は以下のとおりです。注意事項を確認し、理解した上でLIFFアプリの開発を行ってください。
liff.init()をエンドポイントURL以下の階層で実行するliff.init()を1次リダイレクト先URLと2次リダイレクト先URLで1回ずつ実行する- URLを操作する処理は
liff.init()が完了してから実行する - 1次リダイレクト先URLの取り扱いに注意する
liff.init()をエンドポイントURL以下の階層で実行する
liff.init()メソッドはエンドポイントURLと完全に一致、もしくはエンドポイントURLよりも下の階層においてのみ動作します。これら以外のURLに遷移して実行した場合、liff.init()メソッドの動作は保証されません。
以下の例では、エンドポイントURLがhttps://example.com/path1/の場合に、liff.init()メソッドを実行するURLで動作が保証されるかどうかを示しています。なお、動作が保証されないURLでは、マルチタブビューなどのLIFFアプリの一部機能が正しく動作しない可能性があります。
liff.init()を実行するURL | 動作の保証 |
|---|---|
https://example.com/ | ❌ |
https://example.com/path1/ | ✅ |
https://example.com/path1/language/ | ✅ |
https://example.com/path2/ | ❌ |
LIFF v2.27.2以降では、動作が保証されないURLでliff.init()メソッドを実行すると、コンソールに警告メッセージが表示されます。
たとえば、LIFFアプリのエンドポイントURLがhttps://example.com/path1/path2/で、liff.init()メソッドを実行するURLがhttps://example.com/path1/の場合、表示される警告メッセージは次のとおりです。
liff.init() was called with a current URL that is not related to the endpoint URL.
https://example.com/path1/ is not under https://example.com/path1/path2/
上記の警告メッセージが表示された場合、エンドポイントURLをhttps://example.com/やhttps://example.com/path1/に変更できないか検討してください。これらのURLに変更することで、liff.init()メソッドの動作が保証されます。
liff.init()を1次リダイレクト先URLと2次リダイレクト先URLで1回ずつ実行する
liff.init()メソッドは、1次リダイレクト先URLに付与されるliff.stateやaccess_token=xxxなどの情報を元に初期化処理を行います。エンドポイントURLにクエリパラメータやパスが含まれている場合、正しくLIFFアプリを初期化するために、1次リダイレクト先URLと2次リダイレクト先URLで、1回ずつliff.init()メソッドを実行してください。リダイレクトについて詳しくは、『LIFFドキュメント』の「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。
URLを操作する処理はliff.init()が完了してから実行する
URLを操作する処理は、liff.init()メソッドが返すPromiseオブジェクトがresolveしてから実行してください。
// Example using window.location.replace()
liff
.init({
liffId: "1234567890-AbcdEfgh", // Use own liffId
})
.then(() => {
// Redirect to another page after the returned Promise object has been resolved
window.location.replace(location.href + "/entry/");
});
Promiseオブジェクトがresolveする前に、次のようなURLを操作する処理を実行すると、LIFFアプリを正常に開けない場合があります。
Document.locationプロパティやWindow.locationプロパティを使ってURLを変更する- History APIの
history.pushState()メソッドやhistory.replaceState()メソッドを使ってURLを変更する - サーバー側でステータスコード
301や302を返し、別のURLにリダイレクトする
1次リダイレクト先URLの取り扱いに注意する
1次リダイレクト先URLに自動的に付与されるaccess_token=xxxはユーザーのアクセストークン(機密情報)です。Google Analyticsなど外部のロギングツールに、1次リダイレクト先URLを送らないように注意してください。
なお、LIFF v2.11.0以降のバージョンでは、liff.init()メソッドがresolveされたタイミングでURLから機密情報が除外されます。そのため、以下のようにthen()メソッド内でページビューを送信することで、機密情報の漏洩を防ぐことができます。ロギングツールを利用する場合は、LIFFアプリをv2.11.0以降にバージョンアップすることをお勧めします。LIFF v2.11.0の更新内容について詳しくは、『LIFFドキュメント』の「リリースノート」を参照してください。
liff
.init({
liffId: "1234567890-AbcdEfgh", // Use own liffId
})
.then(() => {
ga("send", "pageview");
});
LIFF URLへのアクセス時やLIFF間遷移時などに、URLに liff.* のようなクエリパラメータが付与されることがあります。
例:
liff.state(LIFF URLに指定した追加情報を示す)liff.referrer(LIFF間遷移前のURLを示す。詳しくは、「LIFF間遷移前のURLを取得する」を参照してください。)
上記は、LIFFアプリを正常に動作させるために、SDK側から付与されるクエリパラメータです。 LIFFアプリのURLに独自の処理を行う場合は、LIFFアプリの起動やLIFF間遷移などLIFFアプリの正常な動作を保証するため、liff.initがresolveされるまでliff.*のクエリパラメータを変更しないように設計してください。
以下のプロパティおよびメソッドは、liff.init()メソッドを実行する前でも利用できます。
LIFFアプリを初期化する前にLIFFアプリを動作させている環境を取得したり、LIFFアプリ初期化に失敗した際にLIFFアプリを閉じたりできます。
- liff.ready
- liff.getOS()
- liff.getAppLanguage()
- liff.getLanguage()(非推奨)
- liff.getVersion()
- liff.getLineVersion()
- liff.isInClient()
- liff.closeWindow()
- liff.use()
- liff.i18n.setLang()
liff.closeWindow()メソッドは、LIFF SDKバージョンが2.4.0以上の場合のみ、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
例
構文
liff.init(config, successCallback, errorCallback);
引数
config
Object
LIFFアプリの設定
config.liffId
String
LIFFアプリID。LIFFアプリをチャネルに追加すると取得できます。詳しくは、「LIFFアプリをチャネルに追加する」を参照してください。
ここで指定したLIFFアプリIDは、liff.idで取得できます。
config.withLoginOnExternalBrowser
Boolean
外部ブラウザでのLIFFアプリ初期化時にliff.login()メソッドを自動で実行するかどうかを、以下のどちらかの値で指定します。デフォルト値はfalseです。
true:外部ブラウザでliff.login()メソッドを自動で実行します。false:外部ブラウザでliff.login()メソッドを自動で実行しません。
successCallback
Function
LIFFアプリの初期化に成功したときにデータオブジェクトを返すコールバック
successCallbackは、戻り値のPromiseオブジェクトのresolveと同じタイミングで処理されます。ただし、処理の順番は保証されません。
errorCallback
Function
LIFFアプリの初期化に失敗したときにエラーオブジェクトを返すコールバック
errorCallbackは、戻り値のPromiseオブジェクトのrejectと同じタイミングで処理されます。ただし、処理の順番は保証されません。
戻り値
Promiseオブジェクトが返されます。
エラーレスポンス
Promiseがrejectされたときは、LiffErrorが渡されます。
liff.getOS()
ユーザーがLIFFアプリを動作させている環境を取得します。
このメソッドは、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
構文
liff.getOS();
引数
なし
戻り値
ユーザーがLIFFアプリを動作させている環境が、文字列で返されます。戻り値はユーザーエージェント文字列中のOS名に基づくため、返却される値はブラウザの種類(LIFFブラウザ、LINE内ブラウザ、外部ブラウザ)を問いません。
たとえば、ユーザーがiOSを使用している場合、使用しているブラウザがLIFFブラウザかSafariかは問わず、ios が返却されます。
| 戻り値 | 説明 |
|---|---|
| ios | iOSもしくはiPadOS |
| android | Android |
| web | 上記以外 |
LIFFアプリをサポートするOSやブラウザについては、動作環境を参照してください。
liff.getAppLanguage()
LIFFアプリが動作しているLINEアプリの言語設定を取得します。
このメソッドは、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
使用条件
LIFF SDKのバージョンが2.24.0以上
動作条件
liff.getAppLanguage()メソッドが正しく動作するには、以下の条件をすべて満たす必要があります。
- LIFFアプリがLIFFブラウザ上で動作している。
- LINEアプリのバージョンが14.11.0以上である。
なお、上記の条件を満たさない場合、liff.getAppLanguage()メソッドはliff.getLanguage()メソッドと同じ挙動になります。
構文
liff.getAppLanguage();
引数
なし
戻り値
LIFFアプリが動作しているLINEアプリの言語設定がRFC 5646に準拠した文字列で返されます。
liff.getLanguage()
liff.getLanguage()メソッドは非推奨になりました。LIFFアプリを動作させている環境の言語設定を取得するには、liff.getAppLanguage()メソッドを使用してください。詳しくは、2024年7月23日のニュースを参照してください。
LIFFアプリを動作させている環境の言語設定を取得します。
このメソッドは、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
構文
liff.getLanguage();
引数
なし
戻り値
LIFFアプリを動作させている環境のnavigator.languageで取得できる言語設定が、文字列で返されます。
liff.getVersion()
LIFF SDKのバージョンを取得します。
このメソッドは、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
構文
liff.getVersion();
引数
なし
戻り値
LIFF SDKのバージョンが、文字列で返されます。
liff.getLineVersion()
ユーザーのLINEバージョンを取得します。
このメソッドは、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
構文
liff.getLineVersion();
引数
なし
戻り値
ユーザーがLIFFブラウザでLIFFアプリを開くと、ユーザーのLINEバージョンが文字列で返されます。ユーザーが外部ブラウザでLIFFアプリを開くと、 nullが返されます。
liff.getContext()
LIFFアプリが起動された画面(1対1のトーク、グループトーク、複数人トーク、または外部ブラウザ)に関する情報を取得します。
LIFFアプリに対するトークルームの内部識別子(1対1トークID、グループID、トークルームID)の提供は廃止されました。詳しくは、2023年2月6日のニュース、「2023年2月6日をもってLIFFアプリに対するトークルームの内部識別子の提供を廃止しました」を参照してください。
例
構文
liff.getContext();
引数
なし
戻り値
各種APIを呼び出すために必要な情報を含むデータオブジェクトが返されます。
type
String
LIFFアプリが起動された画面の種類。以下のいずれかの値が含まれます。
utou:1対1のトーク。group:グループトーク。room:複数人トーク。external:外部ブラウザ。none:LINEの1対1のトーク、グループ、複数人トーク、外部ブラウザ以外から起動した場合。例:ウォレットタブ
LIFF間遷移後のLIFFアプリでも、このプロパティが返ります。
userId
String
ユーザーID。typeプロパティが、utou、room、group、noneまたはexternalの場合に含まれます。ただし、typeプロパティがexternalの場合は、nullが返されることがあります。
liffId
String
LIFF ID。
viewType
String
LIFFアプリの画面サイズ。typeプロパティがexternal以外の場合に、以下のいずれかの値が含まれます。
compacttallfull
詳しくは、「LIFFアプリをチャネルに追加する」を参照してください。
endpointUrl
String
LIFFアプリのエンドポイントURL。
accessTokenHash
String
SHA256でハッシュ化したアクセストークンの前半部分。アクセストークンの検証に使用されます。
availability
Object
LIFFアプリを起動した環境で、LIFFの機能が使用可能かどうかをavailabilityオブジェクトとして返します。
scope
Array of strings
LIFF SDKの一部のメソッドを利用するために必要なスコープの中で、どのスコープを持っているかを返します。
openid:liff.getIDToken()およびliff.getDecodedIDToken()を使用するためのスコープemail:liff.getIDToken()およびliff.getDecodedIDToken()で、メールアドレスを取得するためのスコープprofile:liff.getProfile()およびliff.getFriendship()を使用するためのスコープchat_message.write:liff.sendMessages()を使用するためのスコープ
スコープについて詳しくは、『LIFFドキュメント』の「LIFFアプリをチャネルに追加する」を参照してください。
liff.getContext()メソッドでは、LIFFアプリのスコープ(※)の一覧を取得します。
一方、liff.permission.getGrantedAll()メソッドでは、LIFFアプリのスコープのうち、ユーザーが権限の付与に同意したスコープの一覧を取得します。
※ LINEログインチャネルの[LIFF]タブにある「Scope」セクションで指定したスコープ
menuColorSetting
Object
LIFFブラウザのヘッダー部分のカラー設定をmenuColorSettingオブジェクトとして返します。
なお、ヘッダー部分のカラー設定の変更は、現在提供していません。
miniAppId
String
LINEミニアプリのCustom Path機能で設定されている文字列が返されます。Custom Path機能について詳しくは、『LINEミニアプリドキュメント』の「Custom Pathを設定する」を参照してください。
miniDomainAllowed
Boolean
LINEミニアプリをminiapp.line.meドメインで利用できるかどうかを返します。
permanentLinkPattern
String
LIFF URLの追加情報の処理方法。concatが返されます。
詳しくは、『LIFFドキュメント』の「LIFFアプリを開く」を参照してください。
utouId
String
このプロパティは廃止されました。詳しくは、2023年2月6日のニュース、「2023年2月6日をもってLIFFアプリに対するトークルームの内部識別子の提供を廃止しました」を参照してください。
groupId
String
このプロパティは廃止されました。詳しくは、2023年2月6日のニュース、「2023年2月6日をもってLIFFアプリに対するトークルームの内部識別子の提供を廃止しました」を参照してください。
roomId
String
このプロパティは廃止されました。詳しくは、2023年2月6日のニュース、「2023年2月6日をもってLIFFアプリに対するトークルームの内部識別子の提供を廃止しました」を参照してください。
例(LIFFブラウザの場合)
例(外部ブラウザの場合)
availabilityオブジェクト
availabilityオブジェクトには、以下のプロパティが含まれます。
shareTargetPicker
Object
LIFFアプリを起動した環境で、liff.shareTargetPicker()が使用可能かどうかをオブジェクトで表します。
※liff.shareTargetPicker()の使用可否は、このプロパティではなく、liff.isApiAvailable('shareTargetPicker')で確認することをお勧めします。
multipleLiffTransition
Object
LIFFアプリを起動した環境で、LIFFアプリを閉じずにliff.openWindow()で別のLIFFアプリへ遷移することが可能かどうかをオブジェクトで表します。
※LIFF間遷移可否の情報は、このプロパティではなく、liff.isApiAvailable('multipleLiffTransition')で確認することをお勧めします。
subwindowOpen
Object
LIFFアプリを起動した環境で、サブウィンドウが使用可能かどうかをオブジェクトで表します。
scanCode
Object
LIFFアプリを起動した環境で、liff.scanCode()が使用可能かどうかをオブジェクトで表します。
scanCodeV2
Object
LIFFアプリを起動した環境で、liff.scanCodeV2()が使用可能かどうかをオブジェクトで表します。
getAdvertisingId
Object
LIFFアプリを起動した環境で、liff.getAid()が使用可能かどうかをオブジェクトで表します。
なお、liff.getAid()は現在提供していません。
addToHomeScreen
String
LIFFアプリを起動した環境で、liff.addToHomeScreen()が使用可能かどうかをオブジェクトで表します。
なお、liff.addToHomeScreen()は現在提供していません。
bluetoothLeFunction
Object
LIFFアプリを起動した環境で、LINE ThingsのためのBluetooth® Low Energyが使用可能かどうかをオブジェクトで表します。
なお、この機能は現在提供していません。
skipChannelVerificationScreen
Object
LIFFアプリを起動した環境で、「チャネル同意の簡略化」機能を利用できるかどうかをオブジェクトで表します。詳しくは、『LINEミニアプリドキュメント』の「同意画面のプロセスをスキップする」を参照してください。
addToHomeV2
Object
LIFFアプリを起動した環境で、liff.createShortcutOnHomeScreen()が使用可能かどうかをオブジェクトで表します。
※liff.createShortcutOnHomeScreen()の使用可否は、このプロパティではなく、liff.isApiAvailable('createShortcutOnHomeScreen')で確認することをお勧めします。
addToHomeHideDomain
Object
ショートカットを、ユーザー端末のホーム画面に追加する画面を表示する際に、エンドポイントURLを非表示にできるかどうかをオブジェクトで表します。
なお、この機能は現在提供していません。
addToHomeLineScheme
Object
LINE URLスキームを指定したショートカットが作成可能かどうかをオブジェクトで表します。
なお、この機能は現在提供していません。
例
availabilityオブジェクトの共通プロパティ
permission
Boolean
LIFFアプリを起動した環境で、availabilityオブジェクトのプロパティ名で指定された機能が、使用可能かどうかを表します。
true:機能は使用可能。false:機能は使用不可。
minVer
String
該当する機能がサポートされているLINEの最小バージョン
maxVer
String
該当する機能がサポートされているLINEの最大バージョン
unsupportedFromVer
String
該当する機能がサポート対象外となったLINEのバージョン
minOsVer
String
該当する機能がサポートされているOSの最小バージョン
maxOsVer
String
該当する機能がサポートされているOSの最大バージョン
unsupportedFromOsVer
String
該当する機能がサポート対象外となったOSのバージョン
menuColorSettingオブジェクト
menuColorSettingオブジェクトには、以下のプロパティが含まれます。
例
menuColorSettingオブジェクトの共通プロパティ
iconColor
String
ヘッダーのアイコンの色を#RRGGBBのような16進数カラーコードで表します。
statusBarColor
String
常にwhiteを返します。
titleTextColor
String
ヘッダーのタイトルテキストの色を#RRGGBBのような16進数カラーコードで表します。
titleSubtextColor
String
ヘッダーのサブタイトルテキストの色を#RRGGBBのような16進数カラーコードで表します。
titleButtonColor
String
ヘッダーのボタンの色を#RRGGBBのような16進数カラーコードで表します。
titleBackgroundColor
String
ヘッダーの背景色を#RRGGBBのような16進数カラーコードで表します。
progressBarColor
String
ヘッダーのプログレスバーの色を#RRGGBBのような16進数カラーコードで表します。
progressBackgroundColor
String
ヘッダーのプログレスバーの背景色を#RRGGBBのような16進数カラーコードで表します。
liff.isInClient()
LIFFアプリをLIFFブラウザで動作させているかどうかを取得します。
このメソッドは、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
構文
liff.isInClient();
引数
なし
戻り値
liff.isLoggedIn()
ユーザーがログインしているかどうかを取得します。
例
構文
liff.isLoggedIn();
引数
なし
戻り値
true:ログインしているfalse:ログインしていない
liff.isApiAvailable()
指定したAPIが、LIFFアプリを起動した環境で使用可能かどうかを確認します。たとえば、APIが対応しているLINEバージョンであることや、APIを呼び出すために特別な同意が必要な場合は同意していることを確認します。
例
構文
liff.isApiAvailable(apiName);
引数
apiName
String
LIFFのクライアントAPIの名前。以下のAPI名を指定できます。
multipleLiffTransitionは、LIFFアプリを閉じずに別のLIFFアプリを開くこと(LIFF間遷移)が可能かどうか、という状態を表すプロパティで、APIの名前ではありません。詳しくは、『LIFFドキュメント』の「LIFFアプリから別のLIFFアプリを開いた場合の動作について(LIFF間遷移)」を参照してください。
戻り値
指定したAPIが、現在の環境で使用可能かどうかが返されます。使用可能の場合はtrueが返されます。使用不可能の場合はfalseが返されます。falseが返される例は以下のとおりです。
- APIが対応していないLINEバージョンでLIFFアプリを起動した場合
- 外部ブラウザで利用できないAPIにもかかわらず、外部ブラウザでLIFFアプリを起動した場合
- 使用するために特別な同意が必要なAPIにもかかわらず、同意していない場合
- 使用するためにログインが必要なAPIにもかかわらず、ログインしていない場合
- 使用するためにアクセストークンが必要なAPIにもかかわらず、アクセストークンの有効期限が切れている場合
liff.login()
外部ブラウザおよびLINE内ブラウザ上で、ログイン処理を行います。
LIFFブラウザの場合、liff.init()実行時に自動でログイン処理が実行されるため、liff.login()は利用できません。
LIFFブラウザ内でLINEログインによる認可リクエストを行った際の動作は保証されません。また、LIFFアプリを外部ブラウザやLINE内ブラウザで開く場合には、必ず本メソッドでログイン処理を行い、LINEログインによる認可リクエストは行わないでください。
例
構文
liff.login(loginConfig);
引数
loginConfig
Object
ログインの設定
loginConfig.redirectUri
String
ログイン後にLIFFアプリで表示するURL。デフォルト値は[エンドポイントURL]に設定したURLです。[エンドポイントURL]の設定方法について詳しくは、『LIFFドキュメント』の「LIFFアプリをチャネルに追加する」を参照してください。
redirectUriに指定したURLが[エンドポイントURL]に設定したURLで始まらない場合、ログイン処理に失敗し、エラー画面が表示されます。

たとえば、[エンドポイントURL]がhttps://example.com/path1/path2?query1=value1の場合、ログイン処理の成否は以下のとおりです。なお、クエリパラメータやURLフラグメントはログイン処理の成否に影響しません。
| redirectUri | ログイン処理 |
|---|---|
|
✅ 成功 |
|
❌ 失敗 |
戻り値
なし
liff.getAccessToken()
LIFF SDKが取得した「現在のユーザーのアクセストークン」を取得します。
LIFFアプリからサーバーにユーザー情報を送信するときに、このAPIで取得したアクセストークンを利用できます。サーバーでユーザー情報を使用する方法について詳しくは、『LIFFドキュメント』の「LIFFアプリおよびサーバーでユーザー情報を使用する」を参照してください。
アクセストークンの有効期間は、発行後12時間です。なお、ユーザーがLIFFアプリを閉じると、有効期限が切れていなくてもアクセストークンは無効化されます。
- LIFFブラウザでLIFFアプリを起動した場合は、
liff.init()を呼び出したときに、LIFF SDKがアクセストークンを取得します。 - 外部ブラウザでLIFFアプリを起動した場合は、以下の手順を行ったのちに、LIFF SDKがアクセストークンを取得します。
- LIFFアプリで、
liff.login()を呼び出す。 - ユーザーがログインする。
- LIFFアプリで、再度
liff.init()を呼び出す。
- LIFFアプリで、
例
構文
liff.getAccessToken();
引数
なし
戻り値
現在のユーザーのアクセストークンを文字列で返します。
liff.getIDToken()
LIFF SDKが取得した「現在のユーザーのIDトークン」を取得します。IDトークンは、ユーザー情報を含むJSONウェブトークン(JWT)です。
LIFFアプリからサーバーにユーザー情報を送信するときに、このAPIで取得したIDトークンを利用できます。サーバーでユーザー情報を使用する方法について詳しくは、『LIFFドキュメント』の「LIFFアプリおよびサーバーでユーザー情報を使用する」を参照してください。
LIFFアプリをチャネルに追加するときに、openidスコープを選択してください。スコープを選択しなかった場合やユーザーが認可しなかった場合は、IDトークンを取得できません。スコープの選択は、LIFFアプリ追加後もLINE DevelopersコンソールのLIFFタブで変更できます。
- LIFFブラウザでLIFFアプリを起動した場合は、
liff.init()を呼び出したときに、LIFF SDKがIDトークンを取得します。 - 外部ブラウザでLIFFアプリを起動した場合は、以下の手順を行ったのちに、LIFF SDKがIDトークンを取得します。
- LIFFアプリで、
liff.login()を呼び出す。 - ユーザーがログインする。
- LIFFアプリで、再度
liff.init()を呼び出す。
- LIFFアプリで、
LIFFアプリをチャネルに追加するときに、emailスコープを選択し、ユーザーが認可すると、メールアドレスも取得できます。スコープの選択は、LIFFアプリ追加後もLINE DevelopersコンソールのLIFFタブで変更できます。
例
構文
liff.getIDToken();
引数
なし
戻り値
IDトークンが返されます。
liff.getDecodedIDToken()
LIFF SDKが取得したIDトークンの「ペイロード」を取得します。ペイロードには、ユーザーの表示名、プロフィール画像のURL、メールアドレスなどの情報が含まれます。
LIFFアプリでユーザーの表示名などを利用する場合に、このメソッドを利用してください。
なお取得できる情報はメインプロフィールのみです。ユーザーのサブプロフィールは取得できません。
このメソッドで取得したユーザー情報をサーバーに送信しないでください。サーバーでユーザー情報を使用する方法について詳しくは、『LIFFドキュメント』の「LIFFアプリおよびサーバーでユーザー情報を使用する」を参照してください。
LIFFアプリをチャネルに追加するときに、openidスコープを選択してください。スコープを選択しなかった場合やユーザーが認可しなかった場合は、IDトークンを取得できません。スコープの選択は、LIFFアプリ追加後もLINE DevelopersコンソールのLIFFタブで変更できます。
- LIFFブラウザでLIFFアプリを起動した場合は、
liff.init()を呼び出したときに、LIFF SDKがIDトークンを取得します。 - 外部ブラウザでLIFFアプリを起動した場合は、以下の手順を行ったのちに、LIFF SDKがIDトークンを取得します。
- LIFFアプリで、
liff.login()を呼び出す。 - ユーザーがログインする。
- LIFFアプリで、再度
liff.init()を呼び出す。
- LIFFアプリで、
LIFFアプリをチャネルに追加するときに、emailスコープを選択し、ユーザーが認可すると、メールアドレスも取得できます。スコープの選択は、LIFFアプリ追加後もLINE DevelopersコンソールのLIFFタブで変更できます。
例
構文
liff.getDecodedIDToken();
引数
なし
戻り値
IDトークンのペイロードが返されます。
IDトークンのペイロードについて詳しくは、「IDトークンからプロフィール情報を取得する」の「ペイロード」を参照してください。
例
liff.permission.getGrantedAll()
ユーザーが権限の付与に同意したスコープの一覧を取得します。
このメソッドで取得できるスコープは次のとおりです。
liff.getContext()メソッドでは、LIFFアプリのスコープ(※)の一覧を取得します。
一方、liff.permission.getGrantedAll()メソッドでは、LIFFアプリのスコープのうち、ユーザーが権限の付与に同意したスコープの一覧を取得します。
※ LINEログインチャネルの[LIFF]タブにある「Scope」セクションで指定したスコープ
例
構文
liff.permission.getGrantedAll();
引数
なし
戻り値
Promiseがresolveされると、ユーザーが権限の付与に同意したスコープの配列が渡されます。
エラーレスポンス
Promiseがrejectされたときは、LiffErrorが渡されます。
liff.permission.query()
ユーザーが指定した権限の付与に同意しているかどうかを確認します。
例
構文
liff.permission.query(permission);
引数
permission
String
確認対象の権限。以下のいずれかのスコープを指定します。
戻り値
Promiseオブジェクトが返されます。
Promiseがresolveされると、以下のプロパティを持つオブジェクトが渡されます。
state
String
以下のいずれかの値が含まれます。
granted: 権限付与にユーザーが同意済み。prompt: 権限付与にユーザーが未同意。unavailable: 指定したスコープをチャネルが持たないため、利用不可。
liff.permission.requestAll()
LINEミニアプリが要求する権限の「アクセス許可要求画面」を表示します。

liff.permission.requestAll()はLINEミニアプリでのみ動作します。
このメソッドを実行するには、あらかじめLINE Developersコンソールで、[チャネル同意の簡略化]をオンにする必要があります。チャネル同意の簡略化の設定方法について詳しくは、『LINEミニアプリドキュメント』の「「チャネル同意の簡略化」の設定方法」を参照してください。
権限付与にユーザーがすべて同意済みの場合、liff.permission.requestAll()を実行すると、Promiseがrejectされ、LiffErrorが渡されます。そのため、liff.permission.query()を使って、ユーザーが未同意の権限があるかどうかを確認してください。未同意の権限がある場合にのみ、liff.permission.requestAll()を実行するようにしてください。
例
構文
liff.permission.requestAll();
引数
なし
戻り値
Promiseオブジェクトが返されます。
エラーレスポンス
[チャネル同意の簡略化]がオンになっていない場合や、権限付与にユーザーがすべて同意済みの場合は、Promiseがrejectされ、LiffErrorが渡されます。
liff.getProfile()
現在のユーザーのプロフィール情報を取得します。
なお取得できる情報はメインプロフィールのみです。ユーザーのサブプロフィールは取得できません。
このメソッドで取得したユーザー情報をサーバーに送信しないでください。サーバーでユーザー情報を使用する方法について詳しくは、『LIFFドキュメント』の「LIFFアプリおよびサーバーでユーザー情報を使用する」を参照してください。
LIFFアプリをチャネルに追加するときに、profileスコープを選択してください。スコープを選択しなかった場合やユーザーが認可しなかった場合は、プロフィール情報を取得できません。スコープの選択は、LIFFアプリ追加後もLINE DevelopersコンソールのLIFFタブで変更できます。
例
構文
liff.getProfile();
引数
なし
戻り値
Promiseオブジェクトが返されます。
Promiseがresolveされると、ユーザーのプロフィール情報を含むオブジェクトが渡されます。
userId
String
ユーザーID
displayName
String
表示名
pictureUrl
String
画像のURL。ユーザーが設定していない場合は返されません。
statusMessage
String
ステータスメッセージ。ユーザーが設定していない場合は返されません。
エラーレスポンス
Promiseがrejectされたときは、LiffErrorが渡されます。
例
liff.getFriendship()
ユーザーとLINE公式アカウントの友だち関係を取得します。
ただし、LIFFアプリが追加されているLINEログインのチャネルに、LINE公式アカウントがリンクされている場合に、そのLINE公式アカウントとの友だち関係のみを取得できます。LINEログインのチャネルに、LINE公式アカウントをリンクする方法については、『LINEログインドキュメント』の「LINEログインしたときにLINE公式アカウントを友だち追加する(友だち追加オプション)」を参照してください。
LIFFアプリをチャネルに追加するときに、profileスコープを選択してください。スコープを選択しなかった場合やユーザーが認可しなかった場合は、友だち関係を取得できません。スコープの選択は、LIFFアプリ追加後もLINE DevelopersコンソールのLIFFタブで変更できます。
例
構文
liff.getFriendship();
引数
なし
戻り値
Promiseオブジェクトが返されます。
友だち関係を取得できると、Promiseがresolveされ、友だち関係に関する情報が渡されます。
friendFlag
Boolean
true:ユーザーがLINE公式アカウントを友だち追加済みで、ブロックしていない。false:それ以外の場合。
エラーレスポンス
Promiseがrejectされたときは、LiffErrorが渡されます。
例
liff.openWindow()
指定したURLをLINE内ブラウザまたは外部ブラウザで開きます。
LINEバージョン15.20.0より、liff.openWindow()メソッドでユニバーサルリンクやアプリリンクが有効なURLを開く場合の挙動を変更します。
詳しくは、2025年11月4日のニュース、「LINEバージョン15.20.0よりliff.openWindow()メソッドの挙動が変更されます」を参照してください。
liff.openWindow()の外部ブラウザでの利用は、保証対象外です。
例
構文
liff.openWindow(params);
引数
params
Object
パラメータオブジェクト
params.url
String
URL。完全なURLで指定します。
params.external
Boolean
指定したURLを外部ブラウザで開くかどうかを、以下のどちらかの値で指定します。デフォルト値はfalseです。
true:外部ブラウザで開きます。false:LINE内ブラウザで開きます。
戻り値
なし
liff.closeWindow()
LIFFアプリを閉じます。
LIFFアプリを閉じたときの挙動は、LINEアプリのバージョンやLIFFアプリの設定によって異なります。詳しくは、『LIFFドキュメント』の「LIFFアプリを閉じたときの挙動」を参照してください。
このメソッドは、LIFF SDKバージョンが2.4.0以上の場合のみ、liff.init()によるLIFFアプリの初期化が終了する前でも実行できます。
liff.closeWindow()の外部ブラウザでの動作は、保証対象外です。
例
構文
liff.closeWindow();
引数
なし
戻り値
なし
liff.sendMessages()
ユーザーの代わりに、LIFFアプリが開かれているトークルームにメッセージを送信します。
この機能を利用するには、以下の条件を満たす必要があります。
- 1対1のトーク、グループトーク、または複数人トークから起動したLIFFアプリのLIFFブラウザ内である
chat_message.writeスコープが有効である- LIFFアプリが「最近使用したサービス」から再読み込みされていない
条件を満たしていない場合、liff.sendMessages()メソッドが利用できず、エラーコード403のuser doesn't grant required permissions yetエラーが発生します。以下は、エラーが発生する場合の例です。
- Keepメモの機能を利用してLIFFアプリにアクセスした場合。
- ウェブサイトのリダイレクト処理などによりLIFFアプリを開くためのURLスキームにアクセスした場合。
- LIFF間遷移後のLIFFアプリで
chat_message.writeスコープが無効になった場合。詳しくは、『LIFFドキュメント』の「LIFF間遷移後の「chat_message.write」スコープについて」を参照してください。 - ユーザーが
chat_message.writeスコープを認可しなかった場合。
なお、LIFFアプリが起動された画面に関する情報は、liff.getContext()メソッドで取得できます。
例
構文
liff.sendMessages(messages);
引数
messages
Array of objects
メッセージオブジェクト
最大件数:5
Messaging APIの以下のタイプのメッセージを送信できます。
- テキストメッセージ。ただし、
emojisプロパティおよびquoteTokenプロパティは利用できません。 - スタンプメッセージ。ただし、
quoteTokenプロパティは利用できません。 - 画像メッセージ。
- 動画メッセージ。ただし、
trackingIdプロパティは利用できません。 - 音声メッセージ。
- 位置情報メッセージ。
- テンプレートメッセージ。ただし、設定できるアクションはURIアクションのみです。
- Flex Message。ただし、設定できるアクションはURIアクションのみです。
liff.sendMessages()メソッドによってユーザーからテンプレートメッセージまたはFlex Messageが送信された場合、LINEプラットフォームからWebhookは送信されません。それ以外のメッセージタイプであれば、Webhookは送信されます。liff.sendMessages()メソッドで画像、動画、および音声のメッセージが送信されると、結果として送信されるWebhookイベントのcontentProvider.typeプロパティの値はexternalになります。詳しくは、『Messaging APIリファレンス』の「メッセージイベント」を参照してください。
戻り値
Promiseオブジェクトが返されます。
- メッセージの送信が成功すると、
Promiseがresolveされます。値は渡されません。 - メッセージの送信が失敗すると、
Promiseがrejectされ、LiffErrorが渡されます。
liff.shareTargetPicker()
ターゲットピッカー(グループまたは友だちを選択する画面)を表示し、ターゲットピッカーで選択した相手に、開発者が作成したメッセージを送信します。このメッセージは、ユーザーが送信したかのように、グループまたは友だちに表示されます。
liff.shareTargetPicker()メソッドの使用条件
liff.shareTargetPicker()メソッドを使用するには、以下の条件をすべて満たす必要があります。
- ユーザーがログインしている。
- LINE Developersコンソールでシェアターゲットピッカーがオンになっている。詳しくは、『LIFFドキュメント』の「シェアターゲットピッカーを利用するには」を参照してください。
外部ブラウザでターゲットピッカーを表示するには、シングルサインオン(SSO)によるログインセッションが必要です。
自動ログインによるログイン処理では、SSOによるログインセッションが発行されないため、liff.shareTargetPicker()メソッドの実行時にターゲットピッカーが表示されず、代わりにメールアドレスログインの画面が表示されることがあります。
メールアドレスとパスワードを入力してログインすると、SSOによるログインセッションが発行され、ターゲットピッカーが表示されるようになります。
ユーザーのプライバシーを保護するため、シェアターゲットピッカーで、何人にメッセージが送信されたかの情報は取得できません。また、提供も行なっておりません。
例
構文
liff.shareTargetPicker(messages, options);
引数
messages
Array of objects
メッセージオブジェクト
最大件数:5
Messaging APIの以下のタイプのメッセージを送信できます。
- テキストメッセージ。ただし、
emojisプロパティおよびquoteTokenプロパティは利用できません。 - 画像メッセージ。
- 動画メッセージ。ただし、
trackingIdプロパティは利用できません。 - 音声メッセージ。
- 位置情報メッセージ。
- テンプレートメッセージ。ただし、設定できるアクションはURIアクションのみです。
- Flex Message。ただし、設定できるアクションはURIアクションのみです。
options
Object
シェアターゲットピッカーのオプション
options.isMultiple
Boolean
ユーザーがターゲットピッカーで選択するメッセージ送信先として、複数の送信先を選択可能にするかどうかを、以下のどちらかの値で指定します。デフォルト値はtrueです。
true:ユーザーはグループ、友だち、トークの中から、複数の送信先を選択できます。false:ユーザーは友だちの中から、1人のみを送信先として選択できます。
isMultipleプロパティにfalseを設定しても、シェアターゲットピッカーを複数回呼び出すことや、シェア後のメッセージをユーザー側で再度シェアすることで、複数のユーザーへのメッセージ送信が可能です。厳密にユーザーから1人の友だちに対して、一度しかメッセージを送信できないようにする場合には、LIFFアプリ実装時に制限をかける必要があります。
URLを含むメッセージを送信し、URLへのアクセスを制限する場合の例を紹介します。
- URLにユニークなトークンを付与し、メッセージを送信します。
- メッセージ内のURLへアクセスされた際にサーバー側でトークンを検証し、複数のユーザーからのアクセスを制限します。
戻り値
Promiseオブジェクトが返されます。
- 正しくメッセージが送信されると、
Promiseがresolveされ、以下のプロパティを持つオブジェクトが渡されます。statusString常に
successです。 - メッセージを送信する前に、ユーザーがキャンセルしてターゲットピッカーを閉じると、
Promiseがresolveされますが、オブジェクトは渡されません。 - ターゲットピッカーが表示される前に問題が発生した場合は、
Promiseがrejectされ、LiffErrorが渡されます。LiffErrorオブジェクトについては、「LIFF SDKのエラー」を参照してください。
Promiseがresolveした場合とrejectした場合のコールバック関数内で、alert()を実行すると一部端末で正しく動作しません。
liff.scanCodeV2()
二次元コードリーダーを起動し、読み取った文字列を取得します。二次元コードリーダーを起動するには、あらかじめLINE Developersコンソールで、 Scan QR をオンにする必要があります。
liff.scanCodeV2()は以下の環境で動作します。
- iOS:iOS14.3以降
- Android:すべてのバージョン
- 外部ブラウザ:WebRTC API をサポートするウェブブラウザ
| OS | バージョン | LIFFブラウザ | 外部ブラウザ |
|---|---|---|---|
| iOS | 11〜14.2 | ❌ | ✅ ※1 |
| 14.3以降 | ✅ ※2 | ✅ ※1 | |
| Android | すべてのバージョン | ✅ ※2 | ✅ ※1 |
| PC | すべてのバージョン | ❌ | ✅ ※1 |
※1 WebRTC APIをサポートするウェブブラウザのみ利用できます。
※2 LIFFブラウザの画面サイズがFullの場合のみ利用できます。詳しくは、『LIFFドキュメント』の「LIFFブラウザの画面サイズ」を参照してください。
LIFFアプリをチャネルに追加するときに、[Scan QR]をオンにしてください。[Scan QR]の設定は、LIFFアプリ追加後もLINE DevelopersコンソールのLIFFタブで変更できます。
例
構文
liff.scanCodeV2();
引数
なし
戻り値
Promiseオブジェクトが返されます。
二次元コードリーダーで文字列が読み取れると、Promiseがresolveされ、読み取った文字列を含むオブジェクトが渡されます。
value
String
二次元コードリーダーで読み取った文字列
エラーレスポンス
Promiseがrejectされたときは、LiffErrorが渡されます。
liff.scanCode()
従来のliff.scanCode()メソッドは非推奨になります。二次元コードリーダーを実装する場合は、liff.scanCodeV2()メソッドを使用することをお勧めします。
LINEの二次元コードリーダーを起動し、読み取った文字列を取得します。二次元コードリーダーを起動するには、あらかじめLINE Developersコンソールで、 Scan QR をオンにする必要があります。
liff.scanCode()は以下の環境で動作します。
| OS | バージョン | LIFFブラウザ | 外部ブラウザ |
|---|---|---|---|
| iOS | すべてのバージョン | ❌ | ❌ |
| Android | すべてのバージョン | ✅ | ❌ |
| PC | すべてのバージョン | ❌ | ❌ |
技術的な問題があり、iOS版LINEでは、liff.scanCodeはundefinedになります。サンプルコードのように、関数の存在を確認してから、使用してください。iOS版LINEや外部ブラウザでも二次元コードリーダーをお使いになりたい場合は、「liff.scanCodeV2()」を参照してください。
- LIFFアプリをチャネルに追加するときに、[Scan QR]をオンにしてください。[Scan QR]の設定は、LIFFアプリ追加後もLINE DevelopersコンソールのLIFFタブで変更できます。
liff.scanCode()は、外部ブラウザでは利用できません。
例
構文
liff.scanCode();
引数
なし
戻り値
Promiseオブジェクトが返されます。
LINEの二次元コードリーダーで文字列が読み取れると、Promiseがresolveされ、読み取った文字列を含むオブジェクトが渡されます。
value
String
二次元コードリーダーで読み取った文字列
liff.permanentLink.createUrlBy()
LIFFアプリの任意のページのパーマネントリンクを取得します。
パーマネントリンクの形式:
https://liff.line.me/{liffId}/{path}?{query}#{URL fragment}
例
構文
liff.permanentLink.createUrlBy(url);
引数
url
String
パーマネントリンクを取得するURL。任意のクエリパラメータやURLフラグメントを追加できます。
戻り値
Promiseオブジェクトが返されます。
Promiseがresolveされると、パーマネントリンクの文字列が渡されます。
エラーレスポンス
パーマネントリンクを取得するURLが、LINE Developersコンソールの[エンドポイントURL]に指定したURLで始まらない場合、Promiseがrejectされ、LiffErrorが渡されます。
たとえば、パーマネントリンクを取得するURL(例:https://example.com/)が、[エンドポイントURL](例:https://example.com/path1?q1=v1)より上の階層の場合、Promiseがrejectされます。
liff.permanentLink.createUrl()
技術的な問題があり、liff.permanentLink.createUrl()は、次回メジャーバージョン以降に非推奨になる可能性があります。現在のページのパーマネントリンクを取得するには、liff.permanentLink.createUrlBy()を使用することをお勧めします。
現在のページのパーマネントリンクを取得します。
パーマネントリンクの形式:
https://liff.line.me/{liffId}/{path}?{query}#{URL fragment}
例
構文
liff.permanentLink.createUrl();
引数
なし
戻り値
現在のページのパーマネントリンクが、文字列で返されます。
現在のページのURLがLINE Developersコンソールの[エンドポイントURL]に指定したURLで始まらない場合、LiffError例外が発生します。
liff.permanentLink.setExtraQueryParam()
技術的な問題があり、liff.permanentLink.setExtraQueryParam()は、次回メジャーバージョン以降に非推奨になる可能性があります。現在のページのパーマネントリンクに、任意のクエリパラメータを追加するには、liff.permanentLink.createUrlBy()を使用することをお勧めします。
現在のページのパーマネントリンクに、任意のクエリパラメータを追加できます。
liff.permanentLink.setExtraQueryParam()を実行するたびに、前回追加したクエリパラメータは破棄されます。
- 追加したクエリパラメータを削除するには、
liff.permanentLink.setExtraQueryParam("")を実行します。 - 追加したクエリパラメータは、ユーザーが別のページに移動すると破棄されます。
例
構文
liff.permanentLink.setExtraQueryParam(extraString);
引数
extraString
String
追加するクエリパラメータ
戻り値
なし
liff.use()
構文
liff.use(module, option);
引数
module
Object
プラガブルSDKのLIFF APIのモジュールやLIFFプラグイン。
LIFF APIのモジュールを渡す場合、インスタンス化する必要があります。詳しくは、『LIFFドキュメント』の「プラガブルSDKの使用方法」を参照してください。
LIFFプラグインを渡す場合、LIFFプラグインがクラスのときは、インスタンス化する必要があります。詳しくは、『LIFFドキュメント』の「LIFFプラグインを使用する」を参照してください。
戻り値
liffオブジェクトが返されます。
liff.i18n.setLang()
LIFF SDKが表示する文言の言語を指定します。
例
構文
liff.i18n.setLang(language);
引数
language
String
RFC 5646(BCP 47)で定義されている言語タグ。指定した言語タグの翻訳がない場合は、enがフォールバックとして使用されます。
戻り値
Promiseオブジェクトが返されます。
エラーレスポンス
Promiseがrejectされたときは、LiffErrorが渡されます。
liff.createShortcutOnHomeScreen()
この機能は、認証済ミニアプリでのみ利用できます。未認証ミニアプリの場合、開発用の内部チャネルではテストできますが、公開用の内部チャネルでは利用できません。
LINEミニアプリへのショートカットを、ユーザー端末のホーム画面に追加する画面を表示します。

詳しくは、『LINEミニアプリドキュメント』の「ユーザー端末のホーム画面にLINEミニアプリへのショートカットを追加する」を参照してください。
liff.createShortcutOnHomeScreen()メソッドは、ユーザー体験を損なわないよう、LINEミニアプリ上でのユーザー操作(例:タップ)に対する応答として実行してください。
例
使用条件
liff.createShortcutOnHomeScreen()メソッドを使用するには、以下の条件をすべて満たす必要があります。
- LINEミニアプリである。
- LINEミニアプリのLIFF SDKのバージョンがv2.23.0以上である。
- ユーザー端末のLINEアプリのバージョンが13.20.0以上である。
動作条件
ユーザー端末のOSがiOSの場合、liff.createShortcutOnHomeScreen()メソッドが動作する条件は以下のとおりです。動作しない環境においてこのメソッドを実行すると、エラーページが表示されます。
| デフォルトのブラウザ | iOSのバージョン | 動作するかどうか |
|---|---|---|
| Safari | すべてのバージョン | 動作する |
| Chrome | 16.4以降 | 動作する |
| Safari、Chrome以外のブラウザ | 16.4以降 | 動作は保証されない |
| Safari以外のブラウザ | 16.4未満 | 動作しない |
たとえば、iOS 16.4未満において、Chromeでliff.createShortcutOnHomeScreen()メソッドを実行した場合は、以下のエラーページが表示されます。

構文
liff.createShortcutOnHomeScreen(params);
引数
params
Object
パラメータオブジェクト
戻り値
Promiseオブジェクトが返されます。
ショートカット追加画面が表示されると、Promiseがresolveされます。値は渡されません。
なお、ユーザーが端末のホーム画面にLINEミニアプリへのショートカットを実際に追加したかどうかは確認できません。
エラーレスポンス
Promiseがrejectされたときは、LiffErrorが渡されます。