LIFF APIリファレンス

クライアントAPI

LIFF SDKのエラー

LIFF SDKのエラーはLIFFエラーオブジェクトで返されます。

LIFFエラーオブジェクト

プロパティ タイプ 説明
code String コード
message String メッセージ。定義されたメッセージが存在する場合に返されます。

エラー内容

コード メッセージ 説明
INIT_FAILED Failed to init LIFF SDK SDKのJavaScriptリソースをロードできませんでした。
INIT_FAILED Current environment is not supported. Please open it with LINE サポートされていない環境でLIFFアプリを開こうとしました。
INVALID_ARGUMENT - 引数が無効です。
INTERNAL_ERROR - 内部エラーです。

エラーの例

{
  "code":"INIT_FAILED",
  "message":"Failed to init LIFF SDK"
}

liff.init()

LIFFアプリを初期化します。このメソッドを実行すると、LIFF SDKの他のメソッドを実行できるようになります。

構文

liff.init(successCallback, errorCallback)

引数

プロパティ タイプ 必須 説明
successCallback Function 必須 呼び出しの成功時にデータオブジェクトを返すコールバック
errorCallback Function 必須 呼び出しの失敗時にエラーオブジェクトを返すコールバック

リクエストの例

// No sample code available
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
liff.init(
  data => {
    // Now you can call LIFF API
    const userId = data.context.userId;
  },
  err => {
    // LIFF initialization failed
  }
);

戻り値

各種APIを呼び出すために必要な情報を含むデータオブジェクトを返します。

データオブジェクト
プロパティ タイプ 説明
language String LINEの言語設定
context.type String コンテキストのタイプ。LINE内でLIFFアプリが開かれた場所を示します。以下のいずれかの値が含まれます。
  • utou:1対1トーク
  • room:トークルーム
  • group:グループ
  • none:トーク画面以外
context.viewType String LIFFアプリの画面サイズ。以下のいずれかの値が含まれます。
  • compact
  • tall
  • full
詳しくは、「LIFFアプリを追加する」を参照してください。
context.userId String ユーザーID。context.typeプロパティがnone以外の場合に含まれます。
context.utouId String 1対1トークID。context.typeプロパティがutouの場合に含まれます。
context.roomId String トークルームID。context.typeプロパティがroomの場合に含まれます。
context.groupId String グループID。context.typeプロパティがgroupの場合に含まれます。

戻り値の例

{
  "language":"ja-JP",
  "context":{
    "userId":"U4af498...",
    "type":"group",
    "groupId":"Ca5637c...",
    "viewType":"full"
  }
}

liff.openWindow()

指定したURLをLINE内ブラウザまたは外部ブラウザで開きます。

構文

liff.openWindow(params)

引数

paramsオブジェクト
プロパティ タイプ 必須 説明
url String 必須 URL。絶対パスで指定します。
external Boolean 任意 外部ブラウザで開くかどうか。以下のどちらかの値を指定します。デフォルト値はfalseです。
  • true:URLを外部ブラウザで開きます。
  • false:LINE内のブラウザで開きます。

戻り値

なし

リクエストの例

// No sample code available
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
liff.openWindow({
  url:'https://example.com',
  external:true
});

liff.getProfile()

現在のユーザーのプロフィールを取得します。

構文

liff.getProfile()

引数

なし

リクエストの例

// No sample code available
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
liff.getProfile()
.then(profile => {
  const name = profile.displayName
})
.catch((err) => {
  console.log('error', err);
});

戻り値

ユーザーのプロフィール情報を含むPromiseオブジェクトを返します。

プロパティ タイプ 説明
userId String ユーザーID
displayName String 表示名
pictureUrl String 画像のURL。ユーザーが設定していない場合は返されません。
statusMessage String ステータスメッセージ。ユーザーが設定していない場合は返されません。

このメソッドは内部でaxiosを使用して、Social APIを呼び出します。エラー制御についてはaxiosのドキュメントと『Social APIリファレンス』の「ステータスコード」を参照してください。

戻り値の例

{
  "userId":"U4af4980629...",
  "displayName":"Brown",
  "pictureUrl":"https://example.com/abcdefghijklmn",
  "statusMessage":"Hello, LINE!"
}

liff.sendMessages()

ユーザーの代わりに、LIFFアプリが開かれているトーク画面にメッセージを送信します。

構文

liff.sendMessages(messages)

引数

プロパティ タイプ 必須 説明
messages Objectの配列 必須 メッセージオブジェクト
最大件数:5
Messaging APIの以下のタイプのメッセージを送信できます。

ボットが参加しているトークでメッセージが送信されると、LINEプラットフォームからボットのチャネルにWebhookイベントが送信されます。liff.sendMessages()メソッドで画像、動画、および音声のメッセージが送信されると、結果として送信されるWebhookイベントのcontentProvider.typeプロパティの値はexternalになります。詳しくは、『Messaging APIリファレンス』の「メッセージイベント」を参照してください。

戻り値

メッセージの送信が成功した場合は、戻り値はありません。

このメソッドは内部でaxiosを使用して、LINEプラットフォームを呼び出します。エラー制御についてはaxiosのドキュメントと以下の「ステータスコード」を参照してください。

ステータスコード
ステータスコード 説明
400 メッセージが無効です。
401 認証に失敗しました。
403 アクセストークンに適切な権限がありません。

リクエストの例

// No sample code available
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
liff.sendMessages([
  {
    type:'text',
    text:'Hello, World!'
  }
])
.then(() => {
  console.log('message sent');
})
.catch((err) => {
  console.log('error', err);
});

liff.closeWindow()

LIFFアプリを閉じます。

構文

liff.closeWindow()

引数

なし

戻り値

なし

リクエストの例

// No sample code available
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
liff.closeWindow();

サーバーAPI

LIFFアプリを追加する

LIFFにアプリを追加します。1つのチャネルで最大30件のLIFFアプリを追加できます。

HTTPリクエスト

POST https://api.line.me/liff/v1/apps

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}
Content-Type application/json

リクエストボディ

プロパティ タイプ 必須 説明
view.type String 必須 LIFFアプリの画面サイズ。以下のいずれかの値を指定します。
  • compact:デバイスの画面の高さの50%。
  • tall:デバイスの画面の高さの80%。
  • full:デバイスの画面の高さの100%。
view.url String 必須 LIFFアプリのURL。URLスキームはhttpsである必要があります。
description String 任意 LIFFアプリの名前
features.ble Boolean 任意 Bluetooth® Low Energy(以降、BLE)に対応させる場合はtrue。対応させない場合はfalse

リクエストの例

curl -X POST https://api.line.me/liff/v1/apps \
-H "Authorization: Bearer {channel access token}" \
-H "Content-Type: application/json" \
-d '{
  "view":{
    "type":"full",
    "url":"https://example.com/myservice"
  },
  "description": "Service Example",
  "features": {
    "ble": true
  }
}'
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

プロパティ タイプ 説明
liffId String LIFFアプリID

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
400 以下のどちらかです。
  • リクエストに無効な値が含まれています。
  • チャネルに追加できるLIFFアプリ数の上限に達しています。
401 認証に失敗しました。

レスポンスの例

{
  "liffId":"{liffId}"
}

LIFFアプリを更新する

LIFFアプリの設定を、部分的に更新します。

HTTPリクエスト

PUT https://api.line.me/liff/v1/apps/{liffId}

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}
Content-Type application/json

パスパラメータ

パラメータ 説明
liffId 更新するLIFFアプリのID

リクエストボディ

プロパティ タイプ 必須 説明
view.type String 任意 LIFFアプリの画面サイズ。以下のいずれかの値を指定します。
  • compact:デバイスの画面の高さの50%。
  • tall:デバイスの画面の高さの80%。
  • full:デバイスの画面の高さの100%。
view.url String 任意 LIFFアプリのURL。URLスキームはhttpsである必要があります。
description String 任意 LIFFアプリの名前
features.ble Boolean 任意 Bluetooth® Low Energy(以降、BLE)に対応させる場合はtrue。対応させない場合はfalse

注:リクエストボディに指定しなかったプロパティは変更されません。

レスポンス

ステータスコード200を返します。

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。
404 以下のどちらかです。
  • 指定したLIFFアプリは存在しません。
  • 指定したLIFFアプリは別のチャネルに属しています。

リクエストの例

curl -X PUT https://api.line.me/liff/v1/apps/{liffId} \
-H "Authorization: Bearer {channel access token}" \
-H "Content-Type: application/json" \
-d '{
  "view": {
    "url":"https://new.example.com"
  }
}'
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

すべてのLIFFアプリを取得する

チャネルに登録されているすべてのLIFFアプリの情報を取得します。

HTTPリクエスト

GET https://api.line.me/liff/v1/apps

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}

リクエストの例

curl -X GET https://api.line.me/liff/v1/apps \
-H "Authorization: Bearer {channel access token}"
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

プロパティ タイプ 説明
apps Objectの配列 LIFFアプリオブジェクトの配列

LIFFアプリオブジェクト
プロパティ タイプ 説明
liffId String LIFFアプリID
view.type String LIFFアプリの画面サイズ。以下のいずれかの値が含まれます。
  • compact:デバイスの画面の高さの50%。
  • tall:デバイスの画面の高さの80%。
  • full:デバイスの画面の高さの100%。
view.url String LIFFアプリのURL
description String LIFFアプリの名前
features.ble Boolean Bluetooth® Low Energy(以降、BLE)に対応している場合はtrue

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。
404 チャネルにLIFFアプリがありません。

レスポンスの例

{
  "apps":[
    {
      "liffId":"{liffId}",
      "view":{
        "type":"full",
        "url":"https://example.com/myservice"
      },
      "description": "Happy New York"
    },
    {
      "liffId":"{liffId}",
      "view":{
        "type":"tall",
        "url":"https://example.com/myservice2"
      },
      "features": {
        "ble": true
      }
    }
  ]
}

LIFFアプリを削除する

LIFFアプリを削除します。

HTTPリクエスト

DELETE https://api.line.me/liff/v1/apps/{liffId}

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}

パスパラメータ

パラメータ 説明
liffId 削除するLIFFアプリのID

レスポンス

ステータスコード200を返します。

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。
404 以下のどちらかです。
  • 指定したLIFFアプリは存在しません。
  • 指定したLIFFアプリは別のチャネルに属しています。

リクエストの例

curl -X DELETE https://api.line.me/liff/v1/apps/{liffId} \
-H "Authorization: Bearer {channel access token}"
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available