# ニュース: #LIFF の記事

2022/08/04

LIFF v2.21.0をリリースしました

LIFF v2.21.0をリリースしました。

LIFF v2.21.0では、以下の機能追加や改善を行いました。

# LIFF SDKの表示する文言が多言語に対応しました

LIFF SDKの表示する文言が多言語に対応しました。これにより、LIFF SDKの表示する各文言が、navigator.language (opens new window)で取得したユーザーの言語で表示されるようになります。

ただし、現時点では、翻訳が適用されていないため、いずれの文言も英語で表示されます。今後、段階的に翻訳が適用される予定です。

# LIFF SDKが表示する文言の言語を指定できるようになりました

LIFF SDKが表示する文言の言語を指定する、liff.i18n.setLang()メソッドが追加されました。liff.i18n.setLang()メソッドを使うと、ユーザーの言語に関わらず、指定した言語でLIFF SDKの文言を表示できます。

liff.i18n.setLang("en");

なお、翻訳が適用されていない文言は、このメソッドの影響を受けません。

詳しくは、『LIFF APIリファレンス』の「liff.i18n.setLang()」を参照してください。

# liff.init()メソッドが無効なLIFF IDで成功する場合がある不具合を修正しました

liff.init()メソッドが無効なLIFF IDで成功する場合がある不具合がありました。LIFF v2.21.0では、liff.init()メソッドが無効なLIFF LIFF IDで失敗するように修正しました。

# liff.getProfile()メソッドで取得できるプロフィール情報のTypeScriptの型定義を利用できるようになりました

LIFF SDKのnpmパッケージにおいて、liff.getProfile()メソッドで取得できるプロフィール情報のTypeScriptの型定義を利用できるようになりました。@liff/get-profileパッケージからProfile型をインポートできます。

import { Profile } from "@liff/get-profile";
2022/08/04

LINEのバージョン12.13.0以降のLIFFブラウザにおいて、外部サイトへの遷移時およびLIFF間遷移時の仕様を変更します

LINEのバージョン12.13.0以降のLIFFブラウザにおいて、以下の仕様変更を行います。

# 外部サイトに遷移した場合にポップアップが表示されます

LIFFブラウザで開いているLIFFアプリから、LIFFアプリでない外部サイトを開いた場合、「外部サイトに遷移した」ということを示すポップアップが表示されます。

外部サイトに遷移した時のポップアップ

ポップアップは、同じウィンドウで外部サイトを開いた場合にのみ表示されます。別のウィンドウで外部サイトを開いた場合は、ポップアップは表示されません。

ポップアップの表示は、LINEのバージョン12.13.0以降のユーザーに対して、順次適用されます。

# LIFF間遷移の仕様を変更します

LIFF URLでLIFF間遷移をした場合の仕様が、以下のように変更されます。パスやクエリパラメータを追加したLIFF URLの場合についても同様です。

LIFF URLについて詳しくは、『LIFFドキュメント』の「LIFFアプリを開く」を参照してください。なお、エンドポイントURLにおけるLIFF間遷移は、今回の仕様変更の対象外です。

# LIFF間遷移時の画面遷移がスムーズになります

LIFF間遷移時に、自動的に実行されていたliff.login()によるログイン処理が行われなくなります。これにより、LIFF間遷移時のリダイレクトが発生しなくなるため、画面遷移がスムーズになります。

# LIFF間遷移後のLIFFアプリでも「liff.sendMessages()」を利用できます

LINEのバージョン12.13.0未満では、LIFFアプリ AからLIFFアプリ Bを開いた場合、遷移後のLIFFアプリ Bではchat_message.writeスコープが無効になり、チャネル同意画面にも表示されません。

バージョン12.13.0以降では、遷移後のLIFFアプリ Bのchat_message.writeスコープが有効になります。これにより、遷移後のLIFFアプリ Bでもliff.sendMessages()メソッドを利用できます。

LIFF間遷移について詳しくは、『LIFFドキュメント』の「LIFFアプリから別のLIFFアプリを開いた場合の動作について(LIFF間遷移)」を参照してください。

2022/07/21

iOS版LINEバージョン12.12.0以降で、LIFFブラウザの最小化の仕様を一部変更します

2022年6月2日のニュースでお知らせしたLIFFブラウザの最小化の仕様を一部変更します。

# 対象バージョン

iOS版LINEバージョン12.12.0以降

# 変更内容

# 最小化したLIFFブラウザを閉じる方法を追加します

従来のLIFFブラウザを画面外にスワイプする方法に加えて、以下の方法でもLIFFブラウザを閉じることができるようになります。

最小化したLIFFブラウザを閉じる

最小化したLIFFブラウザをドラッグすると、画面下に閉じるアイコンが表示されます。閉じるアイコンに最小化したLIFFブラウザをドラッグし、指を離します。

# アクションボタンのオプションの表記を変更します

アクションボタンのオプションの表記を以下のように変更します。

iOS版LINEバージョン12.12.0未満 iOS版LINEバージョン12.12.0以降
画面を小さく表示 閲覧中のページを最小化

LIFFブラウザの最小化について詳しくは、『LIFFドキュメント』の「LIFFブラウザを最小化する」を参照してください。

2022/07/06

LIFF v2.20.3をリリースしました

LIFF v2.20.3をリリースしました。

LIFF v2.20.3では、以下の不具合を修正しました。

# Androidの外部ブラウザで自動ログインが正しく行われない不具合の暫定対応として、自動ログイン後にアラートを表示するようにしました

Androidの外部ブラウザ自動ログインが正しく行われない場合がありました。その暫定対応として、Androidの外部ブラウザにおいて、自動ログイン後に以下のアラートを表示するようにしました。

Login successfully!

なお、今後のLIFF SDKのアップデートでアラートの表示を改善する予定です。

# LIFF v2.20.3へのアップデート方法

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.20.3にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.20.3もしくはyarn add @line/liff@2.20.3を実行するとv2.20.3にアップデートされます。

LIFF SDKの組み込み方法について詳しくは、『LIFFドキュメント』の「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2022/06/08

LIFF v2.20.2をリリースしました

LIFF v2.20.2をリリースしました。

LIFF v2.20.2では、内部的な機能改善を行いました。

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.20.2にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.20.2もしくはyarn add @line/liff@2.20.2を実行するとv2.20.2にアップデートされます。

LIFF SDKの組み込み方法について詳しくは、『LIFFドキュメント』の「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2022/06/02

iOS版LINEバージョン12.8.0以降でLIFFブラウザを最小化できるようになりました

iOS版LINEバージョン12.8.0以降で、トークルーム上で開いたLIFFブラウザを最小化できるようになりました。

LIFFブラウザの最小化

これまでは、トークルーム上でLIFFブラウザを閲覧しているとき、トークルームにメッセージを送信するといった別の操作を行うには、LIFFブラウザを閉じる必要がありました。また、別の操作を行った後、LIFFブラウザに戻るには、LIFFブラウザを開き直す必要がありました。

iOS版LINEバージョン12.8.0以降では、別の操作を行うために、LIFFブラウザを閉じる必要がなくなりました。LIFFブラウザを最小化することで、LIFFブラウザの閲覧を中断し、別の操作を行うことができます。また、別の操作を行った後、LIFFブラウザを最大化することで、中断したLIFFブラウザの閲覧を再開できます。

# LIFFブラウザの最小化の使用条件

LIFFブラウザを最小化するには、以下の条件をすべて満たす必要があります。

LIFF間遷移後のLIFFアプリが使用条件を満たす必要があります

LIFF間遷移後のLIFFブラウザを最小化するには、遷移後のLIFFアプリが使用条件を満たす必要があります。

たとえば、『LIFFドキュメント』の「LIFFアプリの画面サイズによる動作」にあるように、遷移後のLIFFアプリは画面サイズの指定にかかわらずFullで表示されます。しかし、遷移後のLIFFアプリの画面サイズにTallCompactを指定している場合、遷移後のLIFFアプリはLIFFブラウザの最小化の使用条件を満たしません。

なお、iPadOS版LINEおよびAndroid版LINEについては、LIFFブラウザの最小化に対応予定ですが、時期は未定です。

LIFFブラウザの最小化について詳しくは、『LIFFドキュメント』の「LIFFブラウザを最小化する」を参照してください。

2022/06/01

LINE Developersコンソールにおいて、LINEログインチャネルおよびLINEミニアプリチャネルの「地域」の表記を変更しました

LINE Developersコンソールにおいて、LINEログインチャネルおよびLINEミニアプリチャネルのチャネル設定にある[地域]の表記を変更しました。

# 変更点

変更点は以下のとおりです。

チャネル 変更前 変更後
LINEログインチャネル 地域 サービスを提供する地域
LINEミニアプリチャネル 地域 サービスを提供する地域

なお、変更に伴うチャネルの設定変更は必要ありません。

2022/05/24

【更新】LIFF v2.20.1をリリースしました

2022年5月25日追記

npm側の不具合に起因する、LIFF v2.20.1のnpmパッケージをインストールできない問題が解消いたしました。

詳しくは、npmのステータスページ (opens new window)を参照してください。

LIFF v2.20.1をリリースしました。

LIFF v2.20.1では以下の改善を行いました。

# 外部ブラウザにおいて、未ログイン状態でliff.scanCodeV2()メソッドを実行した際に、エラーを返すようにしました

liff.scanCodeV2()メソッドを実行するには、ユーザーのログインが必要です。

LIFF v2.19.1以前では、外部ブラウザにおいて、未ログイン状態でliff.scanCodeV2()メソッドを実行すると、サブウィンドウが開かれ、空白ページが表示されていました。また、Promiseはpendingのままとなっていました。

LIFF v2.20.1では、上記の場合に、サブウィンドウが開かれなくなりました。また、Promiseがrejectされ、LiffErrorが渡されるようになりました。

liff.scanCodeV2()メソッドについて詳しくは、『LIFF APIリファレンス』の「liff.scanCodeV2()」を参照してください。

LIFF v2.20.0は非推奨です

Androidにおいて、外部ブラウザを使用しているユーザーの一部がログインできない不具合があったため、LIFF v2.20.0は非推奨となりました。LIFF v2.20.0を利用している場合は、LIFF v2.20.1へアップデートしてください。

2022/04/25

LIFFアプリの開発環境を構築できるCLIツール「Create LIFF App」を公開しました

開発者の方々がLIFFアプリの開発をより円滑に行えるよう、LIFFアプリの開発環境を構築できるCLIツール「Create LIFF App」を公開しました。

# Create LIFF Appとは

Create LIFF Appは、LIFFアプリの開発環境がコマンド1つで構築できるCLIツールです。ReactのCreate React App (opens new window)や、Next.jsのCreate Next App (opens new window)のように、Create LIFF Appからの質問に答えていくことで、用途に合わせたLIFFアプリのひな形を含む開発環境が生成され、すぐに開発が始められます。

Create LIFF Appにおいて、現時点で生成可能な言語、フレームワークは以下のとおりです。たとえば、TypeScriptで記述されたNext.jsのソースコードを生成できます。

# Create LIFF Appで生成可能な言語

  • JavaScript
  • TypeScript

# Create LIFF Appで生成可能なフレームワーク

Create LIFF Appについて詳しくは、『LIFFドキュメント』の「Create LIFF AppでLIFFアプリの開発環境を構築する」を参照してください。

従来より提供していたLIFFスターターアプリやLIFFプレイグラウンドと、Create LIFF Appの違いについて詳しくは、「LIFFアプリの開発をサポートするツール」を参照してください。

2022/04/25

LIFF InspectorとLIFF Mockをリリースしました

2022年4月18日にお知らせした、LIFFプラグインのLIFF InspectorとLIFF Mockをリリースしました。

# LIFF Inspector

LIFF Inspectorは、LIFFアプリをデバッグするためのLIFFプラグインです。LIFF Inspectorを使うと、LIFFアプリを実行している端末とは別のPC上のChrome DevTools (opens new window)を使って、LIFFアプリをデバッグできます。

# LIFF Mock

LIFF Mockは、LIFFアプリのテストを簡単にするためのLIFFプラグインです。LIFF Mockを使うと、LIFF SDKにモックモードを追加できます。モックモードでは、LIFFアプリがLIFFサーバーから独立し、LIFF APIがモックデータを返すため、単体テストや負荷テストをより簡単に行うことができます。

LIFFプラグインについて詳しくは、『LIFFドキュメント』の「LIFFプラグイン」を参照してください。

2022/04/18

【更新】LIFF v2.19.1をリリースしました

2022年4月25日追記

近日公開予定としておりました、LIFF InspectorとLIFF Mockを本日リリースしました。詳しくは、2022年4月25日のニュース、「LIFF InspectorとLIFF Mockをリリースしました」を参照してください。

LIFF v2.19.1をリリースしました。

LIFF v2.19.1では以下の機能追加を行いました。

# LIFF SDKを拡張できるLIFFプラグイン機能を追加しました

昨年11月に開催された、LINE DEVELOPER DAY 2021のセッション「すべてのLIFFアプリ開発者の開発体験を向上させるために (opens new window)」でご紹介した、LIFFプラグイン機能を追加しました。

LIFFプラグインとは、LIFF SDKを拡張できる機能です。LIFFプラグインを使うと、LIFF SDKに独自のAPIを追加したり、LIFF APIの挙動を変更したりできます。

また、近日公開予定としておりました、以下のLIFFプラグインをご利用いただけるようになりました。

# LIFF Inspector

LIFF Inspectorは、LIFFアプリをデバッグするためのLIFFプラグインです。LIFF Inspectorを使うと、LIFFアプリを実行している端末とは別のPC上のChrome DevTools (opens new window)を使って、LIFFアプリをデバッグできます。

# LIFF Mock

LIFF Mockは、LIFFアプリのテストを簡単にするためのLIFFプラグインです。LIFF Mockを使うと、LIFF SDKにモックモードを追加できます。モックモードでは、LIFFアプリがLIFFサーバーから独立し、LIFF APIがモックデータを返すため、単体テストや負荷テストをより簡単に行うことができます。

LIFFプラグインについて詳しくは、『LIFFドキュメント』の「LIFFプラグイン」を参照してください。

2022/03/24

チャネル権限の同意画面のデザインを変更しました

2022年3月9日にお知らせしたとおり、チャネル権限の同意画面のデザインを変更しました。

デザイン変更には、チャネルの[会社・事業者の所在国・地域]をチャネル権限の同意画面に表示する変更も含まれています。

チャネル権限の同意画面のデザイン変更に伴い、会社・事業者の所在国・地域を速やかに設定してください

チャネルの[会社・事業者の所在国・地域]が未設定の場合は、チャネル権限の同意画面上に「未確認」と表示されます。ユーザーが権限に同意するかどうかを確認するタイミングで表示される内容となるため、[会社・事業者の所在国・地域]を管理するチャネルに速やかに設定してください。

未確認の表示イメージ

対象となるチャネルや設定方法について詳しくは、2022年2月10日のニュースを参照してください。

# 変更点

チャネル権限の同意画面への主な変更点は以下のとおりです。使用するLINEログインのバージョンによって、変更点が異なります。

変更点 LINEログイン v2.1 LINEログイン v2.0
所在国・地域]の追加
その他デザイン変更

LINEログイン v2.1の、チャネル権限の同意画面への変更点は以下のとおりです。

変更前 変更後 主な変更点
変更前のチャネル権限の同意画面 変更後のチャネル権限の同意画面
  • 所在国・地域]の追加
  • 画面タイトルからLINEのロゴを削除
  • チャネルのアイコンのサイズと形を変更
  • サービス提供者が次の許可をリクエストしています。のテキストを削除
  • ボットリンク機能で表示されるLINE公式アカウントの[友だち追加]を上部に移動
  • 許可の切り替えをトグルボタンに変更
2022/03/22

LIFF v2.19.0をリリースしました

LIFF v2.19.0をリリースしました。

LIFF v2.19.0では、内部的な機能改善を行いました。

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.19.0にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.19.0もしくはyarn add @line/liff@2.19.0を実行するとv2.19.0にアップデートされます。

LIFF SDKの組み込み方法について詳しくは、『LIFFドキュメント』の「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2022/03/09

LIFFのサーバーAPIへのリクエスト時は正しいエンドポイントを利用してください

LINEでは、開発者向けにLINE Front-end Framework(LIFF)のサーバーAPIを提供しています。サーバーAPIを用いると、LIFFアプリをチャネルに追加するといった管理をAPI経由で行えます。

このサーバーAPIの利用時に、エンドポイント内の文字列v1を別の文字列に置き換えてリクエストを実行するケースが見受けられます。サーバーAPIへのリクエストを実行する際は、正しいエンドポイントを利用してください。

項目 エンドポイント
正しいエンドポイントの例 https://api.line.me/liff/v1/apps
誤ったエンドポイントの例
  • https://api.line.me/liff/v2/apps
  • https://api.line.me/liff/example/apps
LIFF SDKとはバージョン番号が異なります

サーバーAPIのバージョン番号は、LIFF SDKのバージョン番号とは異なります。現在公開されているLIFF SDKのバージョンはv2ですが、サーバーAPIのバージョンはv1です。

サーバーAPIについて詳しくは、「サーバーAPIリファレンス」を参照してください。

2022/03/09

【対応推奨】チャネル権限の同意画面のデザイン変更に伴い、会社・事業者の所在国・地域を速やかに設定してください

チャネル権限の同意画面へのデザイン変更を2022年3月24日に予定しています。

デザイン変更には、2022年2月10日のニュースでお知らせした、チャネルの[会社・事業者の所在国・地域]をチャネル権限の同意画面に表示する変更も含まれています。

# 変更予定日

2022/3/24 JST(GMT+9)

なお、デザインの内容および日時は、予告なく変更される可能性があります。

# 変更点

チャネル権限の同意画面への主な変更点は以下のとおりです。使用するLINEログインのバージョンによって、変更点が異なります。

変更点 LINEログイン v2.1 LINEログイン v2.0
所在国・地域]の追加
その他デザイン変更

LINEログイン v2.1の、チャネル権限の同意画面への変更点は以下のとおりです。

変更前 変更後 主な変更点
変更前のチャネル権限の同意画面 変更後のチャネル権限の同意画面
  • 所在国・地域]の追加
  • 画面タイトルからLINEのロゴを削除
  • チャネルのアイコンのサイズと形を変更
  • サービス提供者が次の許可をリクエストしています。のテキストを削除
  • ボットリンク機能で表示されるLINE公式アカウントの[友だち追加]を上部に移動
  • 許可の切り替えをトグルボタンに変更

# チャネル権限の同意画面のデザイン変更に伴い、会社・事業者の所在国・地域を速やかに設定してください 

2022年3月24日以降にチャネルの[会社・事業者の所在国・地域]が未設定の場合は、チャネル権限の同意画面上に「未確認」と表示されます。ユーザーが権限に同意するかどうかを確認するタイミングで表示される内容となるため、[会社・事業者の所在国・地域]を管理するチャネルに速やかに設定してください。

未確認の表示イメージ

今後、利用規約の変更があった場合、変更内容によっては[会社・事業者の所在国・地域]への設定が必須となる可能性があります。チャネルの管理者は法人、個人にかかわらず、早急な対応をお願いします。

対象となるチャネルや設定方法について詳しくは、2022年2月10日のニュースを参照してください。

2022/02/16

LIFFの機能を試せるウェブアプリ「LIFFプレイグラウンド」のソースコードを公開しました

LINEでは開発者向けにLIFFプレイグラウンド (opens new window)というウェブアプリ(LIFFアプリ)を提供しています。LIFFプレイグラウンドではLIFFの基本的な機能が試せます。このLIFFプレイグラウンドのソースコード (opens new window)をGitHubで公開しました。

ソースコードの公開により、開発者は自身のLIFF IDを設定して、独自のLIFFプレイグラウンドを実行できるようになります。例えば開発者のLIFF IDをもとにliff.login()liff.getProfile()といった各クライアントAPIをウェブ上で実行できます。

LIFFプレイグラウンド

LIFFプレイグラウンドの始め方について詳しくは、GitHubリポジトリ (opens new window)のREADMEを参照してください。

LIFFスターターアプリとの違い

LINEでは以前よりLIFFスターターアプリのソースコード (opens new window)をGitHubで公開しています。 LIFFスターターアプリは、LIFFアプリ開発に必要な最低限の機能を持ったテンプレートです。

LIFFスターターアプリについて詳しくは、『LIFFドキュメント』の「LIFFスターターアプリを試してみる」を参照してください。

2022/02/14

LIFF v2.18.2をリリースしました

LIFF v2.18.2をリリースしました。

LIFF v2.18.2では以下の改善を行いました。

# iOS版およびiPadOS版LINEバージョン12.0.0でLINEのアップデートを促すアラートを表示するようにしました

2022年1月14日にお知らせしたとおり、iOS版およびiPadOS版LINEバージョン12.0.0において、特定の条件下でliff.sendMessages()メソッドが正常に動作せず、ステータスコード403のエラーが発生する不具合がありました。この不具合は、ユーザーが利用しているLINEのバージョンを12.0.1以降にアップデートすることで解消します。

ユーザーに修正バージョンのLINEへのアップデートを促すため、iOS版およびiPadOS版LINEバージョン12.0.0において、liff.sendMessages()メソッド実行時にステータスコード403のエラーが発生した場合、アラートを表示するようにしました。

表示されるアラートは以下のとおりです。

LINEアプリをLINE 12.0.1以降にアップデートしてください。Please update your LINE app to LINE 12.0.1 or later.

# liff.scanCodeV2()メソッドでUTF-8エンコーディングの二次元コードを読み取ると、結果が文字化けする不具合を修正しました

liff.scanCodeV2()メソッドでUTF-8エンコーディングの二次元コードを読み取ると、結果が文字化けする不具合を修正しました。

この不具合の修正は、すべてのLIFFアプリに自動的に適用されるため、LIFF SDKのアップデートやコードの改修など、LIFFアプリ側の対応は不要です。

liff.permanentLink.createUrlBy()メソッドにパーセントエンコード (opens new window)されたパスを含むURLを渡すと、不正なパーマネントリンクが返ったり、ステータスコード500のエラーが発生したりする不具合を修正しました。

この不具合の修正は、すべてのLIFFアプリに自動的に適用されるため、LIFF SDKのアップデートやコードの改修など、LIFFアプリ側の対応は不要です。

# LIFF v2.18.2へのアップデート方法

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.18.2にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.18.2もしくはyarn add @line/liff@2.18.2を実行するとv2.18.2にアップデートされます。

LIFF SDKの組み込み方法について詳しくは、『LIFFドキュメント』の「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2022/02/10

【更新】改正個人情報保護法の施行に伴い、LINE公式アカウントや連動アプリを管理する会社または事業者は、所在国・地域を設定してください

2022年2月17日追記

以下のチャネルタイプの作成済みのチャネルへの所在国・地域の設定が可能となりました。

また、LINEミニアプリの所在国・地域の設定について、以下の内容を追記しました。

2022年4月1日に日本の「改正個人情報保護法 (opens new window)」が施行されます。これに伴って、LINE公式アカウントや、連動アプリを管理する会社または事業者の所在国・地域をLINEのアプリ内でユーザーに対して公開することが求められています。

そのため、LINE Developersコンソールでは以下のチャネルタイプに[会社・事業者の所在国・地域]の項目を追加しました。チャネルの管理者は法人、個人にかかわらず、該当するチャネルに[会社・事業者の所在国・地域]を設定できます。

チャネルタイプ 新規のチャネルへの設定 作成済みのチャネルへの設定
LINEログイン 新規チャネル作成画面で設定します。 チャネル基本設定]タブで設定します。
Messaging API 新規チャネル作成画面で設定します。
Messaging APIチャネルに対応するLINE公式アカウントにも同様の設定が反映されます(※)。
2020年2月5日以前にLIFFアプリを追加しているMessaging APIチャネルのみ[チャネル基本設定]タブで設定します。
ブロックチェーンサービス (opens new window) 新規チャネル作成画面で設定します。 チャネル基本設定]タブで設定します。
LINEミニアプリ LINEミニアプリ開発プログラムの登録申請時の情報を元にLINEが所在国・地域を設定します。 チャネル基本設定]タブで設定します。

※ Messaging APIチャネルの作成時に設定した[会社・事業者の所在国・地域]は、LINE Developersコンソールからの確認および変更はできません。

# 所在国・地域のエンドユーザーへの表示

チャネルに設定された所在国・地域は、2022年3月下旬を目処に、エンドユーザーに対して表示します。所在国・地域が表示される画面は以下の通りです。

  • チャネルの権限の同意画面
  • LINE公式アカウントのプロフィール画面

なお、所在国・地域が未設定の場合には、「不明」「未確認」といった表示を行う予定です。

# LINEログイン、Messaging API、ブロックチェーンサービスでの所在国・地域の設定方法

会社・事業者の所在国・地域]のリストの中から、該当する国・地域を設定してください。設定する国・地域は、LINE公式アカウントや、チャネルを利用した連動アプリを提供する法人または個人が所在している国・地域を選択してください。

会社・事業者の所在国・地域を設定することを強く推奨します

日本国内で施行される法律に関係する設定項目のため、LINE公式アカウントや連動アプリを提供している場合は、設定することを強く推奨します。また、[会社・事業者の所在国・地域]は、作成済みのチャネルでは任意の入力項目ですが、2022年4月1日以降に入力必須となる場合があります。

# リストの中に選択すべき所在国・地域が存在しない場合

会社・事業者の所在国・地域]のリストの中に、選択すべき国・地域が存在しない場合は、「お問い合わせフォーム (opens new window)」から以下の項目に情報を入力しご連絡ください。

項目 説明
利用国の選択 LINE公式アカウントや、連動アプリを提供している主な国・地域を選択してください。
返信用メールアドレス このメールアドレスに回答を送信します。
do_not_reply@linecorp.comからのメールを受信できるよう、事前にメール設定を確認してください。
登録電話番号 LINEアカウントに登録されている電話番号または任意の電話番号を入力してください。
登録メールアドレス LINEアカウントに登録されているメールアドレスまたは任意のメールアドレスを入力してください。
1)アプリ名 チャネル名を正確に入力してください。チャネルをまだ作成していない場合は、入力は不要です。
2) Channel ID チャネルIDを正確に入力してください。チャネルをまだ作成していない場合は、入力は不要です。
3)ログインに利用されたメールアドレス 開発者アカウントのメールアドレスを入力してください。メールアドレスがわからない場合は、LINE Developersコンソールにログインした状態で、右上の[アカウント]をクリックし、表示されたメールアドレスを入力してください。
4)問題の発生日時 入力は不要です。
5)問題の具体的な内容 以下の内容を入力してください。
  • 会社・事業者の所在国・地域]に選択すべき国・地域が存在しなかったこと。
  • 実際に設定を行いたい国・地域。

表に記載がない項目は、デフォルトの値のままご連絡ください。

# LINEミニアプリでの所在国・地域の設定方法

# 新規のLINEミニアプリチャネルへの設定

審査の申請時に設定した[地域]と同じ値が反映されます。申請時に、以下のチェックボックスの内容への同意が必要です。

LINEミニアプリを提供する地域と、サービス事業主の所在国・地域が同一であることを表明し、保証します。

# 作成済みのLINEミニアプリチャネルへの設定

作成済みのLINEミニアプリチャネルの[会社・事業者の所在国・地域]は、[チャネル基本設定]タブで設定します。設定が可能な値は、[地域]と同じ値か「その他」のいずれかです。

作成済みのLINEミニアプリの[会社・事業者の所在国・地域]が設定可能な期間

2022年3月9日以降、作成済みのLINEミニアプリの[会社・事業者の所在国・地域]は編集できません。

2022年3月8日までに、作成済みのLINEミニアプリの[会社・事業者の所在国・地域]を設定してください。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2022/01/25

2022年1月25日よりLIFFアプリ名に一部の予約語等が使用できなくなります

2022年1月25日より、LIFFアプリ名に一部の予約語等が使用できなくなりますのでお知らせします。

LINEプラットフォームでは、LINE DevelopersコンソールLIFFのサーバーAPIを通してLIFFアプリを作成、更新する機能を提供しています。LIFFアプリの作成、更新において、これまでLIFFアプリ名に関する制約は設けられていませんでした。今後はLIFFアプリ名として「LINE」やそれに類する文字列、不適切な文字列を設定できなくなります。

LIFFアプリの作成、更新について詳しくは、「LIFFアプリをチャネルに追加する」を参照してください。

# 変更日

2022年1月25日 JST(GMT+9)

LINEは今後もお客様への一層のサービス向上に取り組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2022/01/14

【復旧済み】LIFF/LINEミニアプリ障害のお知らせ

2022年1月17日追記

発生日時」および「影響範囲」を更新しました。

LIFF/LINEミニアプリにおいて以下の障害が発生しておりましたが、修正バージョンのLINEをリリースしました。

お客様には多大なご迷惑をお掛けし、誠に申し訳ございません。

# 発生日時

2022/01/12 〜 2022/01/16 JST(GMT+9)

# 原因

iOS版およびiPadOS版LINE 12.0.0のバグ

# 状況

特定の条件下でLIFFアプリまたはLINEミニアプリを開いた際に、以下の問題が発生していました。

  • liff.sendMessages()が正常に動作せず、ステータスコード403user doesn't grant required permissions yetというエラーメッセージが返る
  • liff.getContext()を実行すると、LIFFアプリが起動された画面に関わらず、戻り値のtypenoneが返る

# 影響範囲

以下の条件をすべて満たす場合、liff.sendMessages()およびliff.getContext()で問題が発生していました。

こちらの条件に当てはまる場合は、ユーザーが利用しているLINEのバージョンを12.0.1以降にアップデートすることで問題が解消いたします。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/12/21

LIFF v2.18.1をリリースしました

LIFF v2.18.1をリリースしました。

LIFF v2.18.1では以下の不具合を修正しています。

# TypeScriptでビルド時にエラーが出る不具合を修正しました

LIFF v2.18.0において、メッセージオブジェクトの中にURIアクションが含まれたコードを、TypeScriptでビルドした時にエラーとなる不具合を修正しました。

# 対象メソッド

# LIFF v2.18.1へのアップデート方法

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.18.1にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.18.1もしくはyarn add @line/liff@2.18.1を実行するとv2.18.1にアップデートされます。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/12/20

【復旧済み】LINEプラットフォーム障害のお知らせ

LINEプラットフォームにおいて以下の障害が発生しておりましたが、すべて復旧いたしております。

お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

  1. 2021/12/19 18:00頃 〜 18:46頃 JST(GMT+9)
  2. 2021/12/19 21:20頃 〜 22:26頃 JST(GMT+9)

# 原因

サーバー障害

# 影響範囲

  • Messaging API
  • LINEログイン
  • LIFF/LINEミニアプリ

# 状況

一部のLINE公式アカウントにおいて、ボットリンク機能を利用した友だち追加や、ブロックの解除の処理が正常に行われない場合がありました。

またLINE公式アカウントとの友だち関係を取得するリクエストを一部正常に処理できず、ステータスコード500番台のエラーが発生していました。

各プロダクトへの主な影響は以下のとおりです。

# Messaging API

  • 一部のリクエストを正常に処理できず、ステータスコード500番台のエラーが発生していました。

# LINEログイン

# LIFF/LINEミニアプリ


LINEは今後もお客様への一層のサービス向上に取組んでまいります。 何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/12/09

LIFF v2.18.0をリリースしました

LIFF v2.18.0をリリースしました。

LIFF v2.18.0では以下の機能追加を行いました。

LIFFアプリの任意のページのパーマネントリンクを取得するliff.permanentLink.createUrlBy()メソッドが追加されました。

従来のliff.permanentLink.createUrl()メソッドでは、現在のページ以外のパーマネントリンクを取得できませんでした。liff.permanentLink.createUrlBy()メソッドでは、現在のページに加えて、LIFFアプリの任意のページのパーマネントリンクを取得できるようになりました。

また、従来のliff.permanentLink.createUrl()メソッドでは、任意のクエリパラメータを追加したパーマネントリンクを取得するには、あらかじめliff.permanentLink.setExtraQueryParam()メソッドを実行する必要がありました。liff.permanentLink.createUrlBy()メソッドでは、メソッド実行時に追加したいクエリパラメータを指定できます。また、liff.permanentLink.createUrlBy()メソッドは、liff.permanentLink.setExtraQueryParam()メソッドの影響を受けません。

liff.permanentLink.createUrl() liff.permanentLink.createUrlBy()
パーマネントリンクを取得できるLIFFアプリのページ 現在のページ 任意のページ
パーマネントリンクへの任意のクエリパラメータの追加方法 あらかじめliff.permanentLink.setExtraQueryParam()メソッドを実行する liff.permanentLink.createUrlBy()メソッド実行時に指定する
戻り値 文字列 Promiseオブジェクト
// For example, if the endpoint URL of the LIFF app is https://example.com/path1?q1=v1
// and its LIFF ID is 1234567890-AbcdEfgh
liff.permanentLink
  .createUrlBy('https://example.com/path1?q1=v1')
  .then((permanentLink) => {
    // https://liff.line.me/1234567890-AbcdEfgh
    console.log(permanentLink);
  });

liff.permanentLink
  .createUrlBy('https://example.com/path1/path2?q1=v1&q2=v2')
  .then((permanentLink) => {
    // https://liff.line.me/1234567890-AbcdEfgh/path2?q=2=v2
    console.log(permanentLink);
  });
liff.permanentLink.createUrl()メソッドは次回メジャーバージョン以降に非推奨になる可能性があります

技術的な問題があり、liff.permanentLink.createUrl()メソッドは、次回メジャーバージョン以降に非推奨になる可能性があります。現在のページのパーマネントリンクを取得するには、liff.permanentLink.createUrlBy()メソッドを使用することをお勧めします。

詳しくは、『LIFF APIリファレンス』の「liff.permanentLink.createUrlBy()」を参照してください。

2021/11/11

LIFF v2.17.0をリリースしました

LIFF v2.17.0をリリースしました。

LIFF v2.17.0では以下の不具合を修正しました。

# iOS版LINEでliff.openWindow()メソッドを実行すると、URLフラグメントの末尾に意図しないクエリパラメータが追加されたURLが開かれる不具合を修正しました

iOS版LINEでliff.openWindow()メソッドを実行するとき、urlプロパティにクエリパラメータが含まれず、かつURLフラグメントが含まれていると、URLフラグメントの末尾に意図しないクエリパラメータが追加されたURLが開かれる不具合がありました。

LIFF v2.17.0では、上記の場合でも正しいURLを開くように不具合を修正しました。

# liff.openWindow()メソッド実行時に開かれるURLの例

LIFF SDKバージョン urlプロパティ 開かれるURL
v2.16.1 https://example.com#URL-fragment https://example.com#URL-fragment?is_liff_external_open_window=false
v2.17.0 https://example.com#URL-fragment https://example.com#URL-fragment

liff.openWindow()メソッドについて詳しくは、『LIFF APIリファレンス』の「liff.openWindow()」を参照してください。

2021/11/11

LINE DEVELOPER DAY 2021のLIFFのセッション内で共有されたLIFFの機能を紹介します

LINE DEVELOPER DAY 2021にて、LIFFに関する2つのセッションが行われました。

セッション中に出てきた、LIFFの機能に関連するリファレンスやドキュメントを紹介します。気になった機能や、実際に利用を始めようと考えている機能があれば、ぜひチェックしてみてください。

# 「LIFF/LINEミニアプリ超入門 - 特徴と実践的な開発」で紹介された機能

機能名 概要 リファレンス/ドキュメント
LINEログイン機能 外部ブラウザおよびLINE内ブラウザ上で、ログイン処理を行います。
シェアターゲットピッカー ターゲットピッカーを表示し、ターゲットピッカーで選択した相手に、開発者が作成したメッセージを送信します。
liff.scanCodeV2 LINEの二次元コードリーダーを起動し、読み取った文字列を取得します。 liff.scanCodeV2()
liff.isApiAvailable 指定したAPIが、LIFFアプリを起動した環境で使用可能かどうかを確認します。 liff.isApiAvailable()
liff.getLineVersion ユーザーのLINEバージョンを取得します。 liff.getLineVersion()
liff.getOS ユーザーがLIFFアプリを動作させている環境を取得します。 liff.getOS()
チャネル同意の簡略化 ユーザーが、LINEミニアプリに初めてアクセスする際に表示される同意画面をスキップできる機能です。 チャネル同意のプロセスをスキップする
liff.referrerクエリパラメータ LIFF間遷移前のページのリファラーを取得できます。 LIFF間遷移前のURLを取得する
LIFFの開発を始める LINE DevelopersコンソールでLIFFアプリ用のチャネルを追加し、LIFF SDKを利用して開発を行います。

# 「すべてのLIFFアプリ開発者の開発体験を向上させるために」で紹介された新機能

機能名 概要 過去の告知内容
LINE API Status (opens new window) LINE API Statusは、LINEが提供するサービスの稼働状況や障害状況を確認できるサイトです。稼働状況や障害状況の情報は英語で提供されます。 LINE API Statusの対象サービスにLIFFとLINEログインが加わりました
LIFFプレイグラウンド (opens new window) LIFFプレイグラウンドを利用すると、LIFF APIを簡単に試すことができます。 新しいLIFFスターターアプリとLIFFプレイグラウンドを公開しました
LIFFスターターアプリ (opens new window) LIFFスターターアプリは、LIFFアプリの開発の始め方を理解しやすいよう、LIFFアプリの初期化のデモのみを行っています。 同上

# LINE DEVELOPER DAY 2021関連リンク

2021/11/08

LINE API Statusの対象サービスにLIFFとLINEログインが加わりました

LINE API Status (opens new window)の対象サービスにLIFFとLINEログインが加わりました。

LINE API Statusは、LINEが提供するサービスの稼働状況や障害状況を確認できるサイトです。稼働状況や障害状況の情報は英語で提供されます。

# LINE API Statusの対象となるサービス

LINE API Statusの対象となるサービスは以下の通りです。

  • LIFF
  • LINEログイン
  • Messaging API
    • API
    • Webhook
  • LINE Developers
    • LINE Developersサイト
    • LINE Developersコンソール

現時点では、LINEアプリや上記以外のサービス(LINEミニアプリ、LINE Payなど)はLINE API Statusの対象外です。

LINE API Statusの情報について

当社は、LINE API Statusにおいて障害状況の情報を提供しますが、即時性、正確性、確実な情報提供を保証するものではありません。また原因や影響範囲など、障害の詳細については従来通りLINE Developersサイトのニュースにてお知らせします。

2021/11/02

新しいLIFFスターターアプリとLIFFプレイグラウンドを公開しました

開発者の方々がLIFFアプリの開発をより円滑に行えるよう、新しいLIFFスターターアプリとLIFFプレイグラウンドを公開しました。

# LIFFスターターアプリ

従来のLIFFスターターアプリと比べて、新しいLIFFスターターアプリはよりシンプルになりました。

従来のLIFFスターターアプリは、LIFFアプリの初期化のデモとLIFF APIのデモの両方を兼ねていました。新しいLIFFスターターアプリは、LIFFアプリの開発の始め方を理解しやすいよう、LIFFアプリの初期化のデモのみを行っています。従来のLIFFスターターアプリに含まれたLIFF APIのデモは、LIFFプレイグラウンドとして分けられました。

新しいLIFFスターターアプリは、現時点ではvanilla JavaScriptのみをサポートしています。今後、Next.jsやNuxtといったJavaScriptフレームワークについてもサポートする予定です。

詳しくは、LIFFスターターアプリ (opens new window)を参照してください。

# LIFFプレイグラウンド

新しいLIFFスターターアプリの公開に伴い、LIFFプレイグラウンドを公開しました。LIFFプレイグラウンドを利用すると、LIFF APIを簡単に試すことができます。たとえば、LIFFプレイグラウンド上でログイン処理を行ったり、LIFFアプリが動作している環境を取得したりできます。

LIFFプレイグラウンドをLIFFブラウザで試すには、LIFFプレイグラウンドをモバイルブラウザで開き、ヘッダーの[Open In LINE]ボタンをクリックしてください。

詳しくは、LIFFプレイグラウンド (opens new window)を参照してください。

開発者の方々が当社サービスを利用したアプリ開発をさらに円滑に進められるように、今後も引き続き、LINE Developersサイトと開発者向けドキュメントの品質向上に努めて参ります。

2021/10/28

11月10日・11日 LINE DEVELOPER DAY 2021を開催します

LINE DEVELOPER DAY 2021は、LINEが11月10日、11日の2日間に開催するオンライン技術カンファレンスです。すべてのセッションは日本語、英語、韓国語の3言語で配信されます。

LINE DEVELOPER DAY 2021では50以上のセッションが配信されます。その中でLINE APILINE Developersサイトに関連する主なセッションはこちらです。

申込方法や開催時間、セッション内容について詳しくは、LINE DEVELOPER DAY 2021公式サイト (opens new window)を参照してください。

2021/10/26

LIFF v2.16.1をリリースしました

LIFF v2.16.1をリリースしました。

LIFF v2.16.1では以下の不具合を修正しています。

# LIFF v2.14.0以降のCDN版のファイルサイズが肥大化する不具合を修正しました

LIFF v2.14.0で行われた内部的なソースコードの変更により、LIFF v2.14.0以降のCDN版のファイルサイズが肥大化する不具合がありました。LIFF v2.16.1では、ファイルサイズの肥大化が起こらないよう、不具合を修正しました。

# webpack v5を使ったプロジェクトのビルド時にエラーが発生する不具合を修正しました

webpack v5から、Node.jsのポリフィルが削除されました。 (opens new window)その影響により、webpack v5を使ったプロジェクトでLIFF v2.16.0以前のnpm版を使用すると、ビルド時にエラーが発生し、以下のようなメッセージが表示されます。

Module not found: Error: Can't resolve 'crypto' in 'node_modules/js-crypto-env/dist'
 
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
 
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "crypto": false }

これは、LIFF v2.16.0以前では、LIFF SDK内部においてNode.jsのポリフィルに依存した実装をしているためです。LIFF v2.16.1では、Node.jsのポリフィルに依存しない実装に変更されたため、上記のエラーが発生しなくなりました。

# webpack v5を使ったプロジェクトでLIFF v2.16.0以前のnpm版を使う場合

LIFF SDKのバージョンを維持したまま不具合を修正するには、Node.jsのポリフィルのインストールと、webpack.config.jsの設定が必要です。

まず、Node.jsのポリフィルをインストールします。crypto-browserifystream-browserify をインストールしてください。

# npmの場合
$ npm install crypto-browserify stream-browserify

# Yarnの場合
$ yarn add crypto-browserify stream-browserify

次に、webpack.config.jsresolve.fallbackを以下のようにします。

module.exports = {
  resolve: {
    fallback: {
      crypto: require.resolve('crypto-browserify'),
      stream: require.resolve('stream-browserify'),
    },
  },
};

# LIFF v2.16.1へのアップデート方法

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.16.1にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.16.1もしくはyarn add @line/liff@2.16.1を実行するとv2.16.1にアップデートされます。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/10/12

LIFF v2.16.0をリリースしました

LIFF v2.16.0をリリースしました。

LIFF v2.16.0では以下の機能追加を行いました。

# シェアターゲットピッカーに、送信先を複数にするか1人にするかを制御するオプションが追加されました

liff.shareTargetPicker()メソッドにisMultipleプロパティが追加されました。isMultipleプロパティを設定することで、ユーザーがターゲットピッカーで選択できるメッセージ送信先として、複数の送信先を選択可能にするかどうかを制御できるようになりました。

isMultipleプロパティにtrueを指定した場合は、ユーザーはターゲットピッカーで複数の送信先を選択可能です。falseを指定した場合は、送信先として友だち1人だけを選択可能です。デフォルトではtrueが指定されます。

isMultipleの値 選択可能な送信先 選択可能な件数
true グループ、友だち、トーク 複数の送信先を選択可能
false 友だち 1人だけ選択可能
isMultipleにfalseを設定しても、1人の友だちのみにメッセージが送信されることは保証できません

isMultipleプロパティにfalseを設定しても、シェアターゲットピッカーを複数回呼び出すことや、シェア後のメッセージをユーザー側で再度シェアすることで、複数のユーザーへのメッセージ送信が可能です。厳密にユーザーから1人の友だちに対して、一度しかメッセージを送信できないようにする場合には、LIFFアプリ実装時に制限をかける必要があります。

URLを含むメッセージを送信し、URLへのアクセスを制限する場合の例を紹介します。

  1. URLにユニークなトークンを付与し、メッセージを送信します。
  2. メッセージ内のURLへアクセスされた際にサーバー側でトークンを検証し、複数のユーザーからのアクセスを制限します。
ユーザーがシェアターゲットピッカーでメッセージを送信した人数は、取得できません

ユーザーのプライバシーを保護するため、シェアターゲットピッカーで、何人にメッセージが送信されたかの情報は取得できません。また、提供も行なっておりません。

liff.shareTargetPicker()メソッドにisMultipleプロパティを追加したサンプルコード:

if (liff.isApiAvailable('shareTargetPicker')) {
  liff.shareTargetPicker(
      [
        {
          type: "text",
          text: "Hello, World!",
        },
      ],
      {
        isMultiple: true,
      }
    )
    .then(function (res) {
      if (res) {
        // succeeded in sending a message through TargetPicker
        console.log(`[${res.status}] Message sent!`)
      } else {
        const [majorVer, minorVer] = (liff.getLineVersion() || "").split('.');
        if (parseInt(majorVer) == 10 && parseInt(minorVer) < 11) {
          // LINE 10.3.0 - 10.10.0
          // Old LINE will access here regardless of user's action
          console.log('TargetPicker was opened at least. Whether succeeded to send message is unclear')
        } else {
          // LINE 10.11.0 -
          // sending message canceled
          console.log('TargetPicker was closed!')
        }
      }
    }).catch(function (error) {
      // something went wrong before sending a message
      console.log('something wrong happen')
    })
}

詳しくは、『LIFF APIリファレンス』の「liff.shareTargetPicker()」を参照してください。

2021/10/01

【復旧済み】LINEプラットフォーム障害のお知らせ

LINEプラットフォームにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。 お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

2021/10/01 9:45頃 〜 9:49頃 JST(GMT+9)

# 原因

ネットワーク障害

# 影響範囲

  • Messaging API
  • LINEログイン
  • LIFF/LINEミニアプリ

# 状況

各プロダクトへの主な影響は以下のとおりです。

# Messaging API

  • 一部のリクエストを正常に処理できず、ステータスコード500番台のエラーが発生していました。
  • Webhookイベントの送信が遅延したり、正常に行われない場合がありました。
  • 以下のエンドポイントへのリクエスト時に、エンドポイントへのリクエストが成功してステータスコード200が返ったにもかかわらず、実際はメッセージが送信されていない場合がありました。

なお本障害の影響で、APIリクエストは成功したが実際に送信されなかったメッセージについては、LINE公式アカウントのご利用料金、および送信済みのプッシュメッセージの数を取得するエンドポイント等で確認可能な「送信済みメッセージの数」にはカウントされません。

# LINEログイン

  • LINEログインを正常に行うことができない場合がありました。

# LIFF/LINEミニアプリ

  • LIFF/LINEミニアプリを正常に利用できない場合がありました。
  • サービスメッセージが正常に送信されない場合がありました。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。 何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/10/01

2021年10月1日をもってLIFF v1を廃止しました

2021年9月17日にお知らせしたとおり、LIFF v1を2021年10月1日に廃止いたしました。

なお、サーバーAPIにつきましては、LIFF v1とは異なるスケジュールで管理されているため、今回の廃止対象ではありません。

# 対象バージョン

LIFF v1

LIFF v1をお使いの場合はLIFF v2へ移行してください

LIFF v2への移行について詳しくは、2021年4月5日にお知らせした「LIFF v2に移行する」を参照してください。

# 廃止日

2021/10/01 JST(GMT+9)

# 影響

今後、LIFF v1 SDKのURL(https://d.line-scdn.net/liff/1.0/sdk.js)の参照、およびLIFF v1 APIの利用が順次できなくなります。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/09/30

LIFF v2.15.0をリリースしました

LIFF v2.15.0をリリースしました。

LIFF v2.15.0では以下の機能追加を行いました。

# 二次元コードリーダー機能が追加されました

LIFFアプリ上で二次元コードリーダーを起動するliff.scanCodeV2()メソッドが追加されました。

従来のliff.scanCode()は技術的な問題があり、iOS版LINEバージョン9.19.0以降や外部ブラウザでは使用できませんでしたが、liff.scanCodeV2()では最新のiOS版LINEや外部ブラウザでも二次元コードリーダーを起動できるようになりました。

liff.scanCodeV2()の動作仕様

liff.scanCodeV2()は、内部でjsQR (opens new window)という外部ライブラリを使用しています。そのため、liff.scanCodeV2()メソッド実行時に起動する二次元コードリーダーは、jsQR (opens new window)の動作仕様に依存します。なお、使用ライブラリは予告なく更新、変更される可能性があります。

liff.scanCode()メソッドは非推奨です

従来のliff.scanCode()メソッドは非推奨になります。二次元コードリーダーを実装する場合は、liff.scanCodeV2()メソッドを使用することをお勧めします。

# liff.scanCodeV2()による二次元コードリーダーの実装

liff.scanCodeV2()を使った二次元コードリーダーの実装方法は、従来のliff.scanCode()と同様です。LINE DevelopersコンソールのLIFFタブで[Scan QR]をオンにした上で、以下のようにliff.scanCodeV2()を実装してください。


# liff.scanCodeV2()のサンプルコード:
liff.scanCodeV2().then(result => {
	// result = { value: '' }
});
LINEミニアプリによる二次元コードリーダーのサポートは2021年10月7日を予定しています

liff.scanCodeV2()を使って二次元コードリーダーを起動するには、LINE DevelopersコンソールのLINEログインチャネルのLIFFタブで[Scan QR]をオンにする必要があります。LINEミニアプリチャネルへの[Scan QR]設定の追加は2021年10月7日を予定しています。2021年9月30日現在、LINEミニアプリではliff.scanCodeV2()は利用できません。

Scan QR

# liff.scanCodeV2()メソッドの動作環境

liff.scanCodeV2()メソッドの動作環境と、表示される二次元コードリーダーは以下のとおりです。

# 動作環境

従来のliff.scanCode()メソッドは技術的な問題があり、iOS版LINEバージョン9.19.0以降または外部ブラウザでは利用できませんでした。今回追加されたliff.scanCodeV2()メソッドは最新のiOS版LINEや外部ブラウザでも利用できるようになりました。

OS バージョン LINEアプリのバージョン 外部ブラウザ
9.18.0以前 9.19.0〜11.6.x 11.7.0以降
iOS 11〜14.2 ✅ ※1
14.3以降 ✅ ※2 ✅ ※1
Android すべてのバージョン ✅ ※2 ✅ ※1
PC すべてのバージョン ✅ ※1

※1 WebRTC API (opens new window)をサポートするブラウザのみ利用できます。

※2 LIFFブラウザの画面サイズがFullの場合のみ利用できます。詳しくは、『LIFFドキュメント』の「LIFFブラウザの画面サイズ」を参照してください。

# 二次元コードリーダー

liff.scanCode()メソッドの場合、AndroidとiOSでは表示される二次元コードリーダーが異なりましたが、liff.scanCodeV2()メソッドの場合、OSの違いによらず以下の画面に統一されます。

二次元コードリーダー

二次元コードリーダーを起動すると、FullサイズのLIFFアプリの画面下部からTallサイズのサブウィンドウが表示されます。また、画面右下の 二次元コード選択 アイコンをクリックすると、読み取り対象の二次元コードを写真から選ぶことができます。


liff.scanCodeV2()を使った二次元コードリーダーの実装について詳しくは、『LIFFドキュメント』の「二次元コードリーダーを表示する」を参照してください。

# 外部ブラウザでLIFFアプリ初期化時にliff.login()メソッドが自動で実行されるオプションが追加されました

liff.init()メソッドにwithLoginOnExternalBrowserプロパティが追加されました。通常、外部ブラウザでLIFFアプリにアクセスする場合、liff.login()メソッドで明示的にログイン処理を行う必要があります。今回追加されたwithLoginOnExternalBrowserプロパティにtrueを指定することで、LIFFアプリ初期化時(liff.init()メソッド実行時)にliff.login()メソッドを自動で実行することができるようになりました。

ログイン

liff.init()メソッドにwithLoginOnExternalBrowserプロパティを追加したサンプルコード:

liff.init({
  liffId: "123456-abcdef",
  withLoginOnExternalBrowser: true, // Enable automatic login process
}).then(() =>
  // Start to use liff's api
});

詳しくは、『LIFF APIリファレンス』の「liff.init()」を参照してください。

2021/09/17

2021年10月1日をもってLIFF v1を廃止します

2021年4月5日にお知らせしたとおり、LIFF v1は非推奨期間を終了し、2021年10月1日に廃止いたします。

# 対象バージョン

LIFF v1

LIFF v1をお使いの場合はLIFF v2へ移行してください

LIFF v2への移行について詳しくは、2021年4月5日にお知らせした「LIFF v2に移行する」を参照してください。

# 廃止日

2021/10/01 JST(GMT+9)

# 影響

2021年10月1日以降、LIFF v1 SDKのURL(https://d.line-scdn.net/liff/1.0/sdk.js)の参照、およびLIFF v1 APIの利用が順次できなくなります。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/09/14

LIFF v2.14.0をリリースしました

LIFF v2.14.0をリリースしました。

今回のバージョンアップでは、SDK内部のリファクタリングのみで、機能の変更はありません。

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.14.0にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.14.0もしくはyarn add @line/liff@2.14.0を実行するとv2.14.0にバージョンアップされます。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/09/08

LIFF間遷移前のLIFFアプリに戻る際にコンテンツが正しく表示されなくなる不具合が修正されました

2021年5月31日のニュースでお知らせした、LIFF間遷移後に戻るボタンを押すかブラウザバックを行った際、URLは遷移前のLIFF URLに戻るが、画面の表示が変わらない、もしくは画面が空白になる不具合が、iOS 14.7上のLINEまたはSafari、およびmacOS上のSafari 14.1.2で修正されました。

# 不具合に対して実施した暫定対応

2021年5月31日以前は、iOS14.5.x上のLINEまたはSafari、もしくはmacOS上のSafari 14.xにおいて以下の不具合が発生していました。

LIFF間遷移前のLIFFアプリに戻ると画面が空白になる図

暫定対応として、LIFF URLの追加情報の内、URLフラグメント(#URL-fragment)のみリダイレクト時に除外することで不具合を回避しました。

ただし、iOS 14.7およびSafari 14.1.2以降では、Apple WebKit (opens new window)の不具合修正により、URLフラグメントを含む2次リダイレクト先に正しくリダイレクトされるようになりました。

# 暫定対応の継続

以下のバージョンでは、引き続き不具合が発生するため暫定対応は継続されます。

  • iOS:14.5〜14.6
  • macOS上のSafari:14.0〜14.1.1

各バージョンごとのリダイレクトの動作:

環境 動作 LIFF URL エンドポイントURL 2次リダイレクト先URL
  • iOS:14.7以降
  • Safari:14.1.2以降
✅ 正常 https://liff.line.me/{liffId}
/path?key=value#URL-fragment
https://example.com https://example.com
/path?key=value#URL-fragment
  • iOS:14.5〜14.6
  • Safari:14.0〜14.1.1
❌ 暫定対応
による動作
https://liff.line.me/{liffId}
/path?key=value#URL-fragment
https://example.com https://example.com
/path?key=value
  • iOS:14.4以前
  • Safari:13.x以前
✅ 正常 https://liff.line.me/{liffId}
/path?key=value#URL-fragment
https://example.com https://example.com
/path?key=value#URL-fragment
LIFF URLのURLフラグメントについて

不具合の影響により、一時的にLIFF URLからURLフラグメントを除外している場合は、再度LIFF URLにURLフラグメントを含めることをお勧めします。

LIFF間遷移について詳しくは、『LIFFドキュメント』の「LIFFアプリから別のLIFFアプリを開いた場合の動作について」を参照してください。

2021/09/06

【復旧済み】LINEプラットフォーム障害のお知らせ

LINEプラットフォームにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。 お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

  1. 2021/9/4 10:36頃 JST(GMT+9)
  2. 2021/9/4 10:36頃〜10:51頃 JST(GMT+9)
  3. 2021/9/4 10:50頃〜10:51頃 JST(GMT+9)

# 原因

ネットワーク障害

# 影響範囲

  • Messaging API
  • LINEログイン
  • LIFF/LINEミニアプリ

# 状況

各プロダクトへの主な影響は以下のとおりです。

# Messaging API

1.および3.の発生日時において、以下の事象が発生しました。

  • 一部のリクエストを正常に処理できず、ステータスコード500番台のエラーが発生していました。
  • Webhookイベントの送信が遅延したり、正常に行われない場合がありました。

# LINEログイン

2.の発生日時において、以下の事象が発生しました。

  • LINEログインを正常に行うことができない場合がありました。

# LIFF/LINEミニアプリ

2.の発生日時において、以下の事象が発生しました。

  • LIFF/LINEミニアプリを正常に利用できない場合がありました。
  • サービスメッセージが正常に送信されない場合がありました。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。 何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/09/02

【復旧済み】LINEログインおよびLIFF障害のお知らせ

LINEログインおよびLIFFにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

  • 2021/9/1 20:05頃〜20:18頃 JST(GMT+9)
  • 2021/9/1 20:42頃〜20:45頃 JST(GMT+9)
  • 2021/9/1 21:19頃〜21:20頃 JST(GMT+9)

# 原因

サーバー障害

# 影響範囲

# LINEログイン

# LIFF

# 状況

一部のLINE公式アカウントにおいて、ボットリンク機能を利用した友だち追加や、ブロックの解除の処理が正常に行われない場合がありました。

またLINE公式アカウントとの友だち関係を取得するリクエストを一部正常に処理できず、ステータスコード500番台のエラーが発生していました。


LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/08/17

LINE API 緊急メンテナンスのお知らせ

LINE APIにおいて以下の緊急メンテナンスを予定しています。メンテナンス期間中、一部のLINE APIを使ったリクエストにおいて、正常に処理が行われなくなる可能性があります。

お客様には多大なご迷惑をお掛けし、誠に申し訳ございません。

# メンテナンス予定日時

2021/8/18 4:00~4:30 JST(GMT+9)

なお、メンテナンス終了時刻は予告なく前後する可能性があります。

# メンテナンスの目的

ハードウェア故障による対応

# 影響範囲

以下を含む、LINEプラットフォームで提供するすべてのLINE APIが影響を受ける可能性があります。

# メンテナンスによる影響

上記のメンテナンス予定日時の内、1分〜2分程度の間、一部のLINE APIリクエストにおいて、HTTPステータスコード500番台のエラーレスポンスが発生し、正常に処理が行われない可能性があります。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/08/12

LIFF v2.13.0をリリースしました

LIFF v2.13.0をリリースしました。

LIFF v2.13.0では以下の機能追加と不具合の修正を行いました。

本日(2021年8月12日)リリースされた「チャネル同意の簡略化」機能を利用する場合、対象のLINEミニアプリのLIFF SDKをv2.13.0にバージョンアップする必要があります。

「チャネル同意の簡略化」機能を使用すると、ユーザーが初めてLINEミニアプリにアクセスした際に表示される「同意画面」をスキップできるようになります。

LIFF SDKのバージョン以外の利用条件や、動作、設定方法など詳しくは、『LINEミニアプリドキュメント』の「同意画面のプロセスをスキップする」を参照してください。

# npmパッケージ版LIFF SDKの一部不具合を修正しました

npmパッケージ版内部の一部不具合を修正しました。

npmパッケージを利用している場合は、npm install @line/liff@2.13.0もしくはyarn add @line/liff@2.13.0を実行してv2.13.0にバージョンアップすることをお勧めします。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/08/04

【復旧済み】LINEプラットフォーム障害のお知らせ

LINEプラットフォームにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。

お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

2021/8/4 17:52頃〜18:32頃 JST(GMT+9)

# 原因

システム障害

# 影響範囲

  • Messaging API全般
  • LINEログイン全般
  • LIFF全般
  • その他LINEプラットフォームで提供する機能全般

# 状況

各プロダクトへの主な影響は以下のとおりです。

# Messaging API

  • 一部のリクエストを正常に処理できず、ステータスコード500番台のエラーが発生していました。
  • Webhookイベントの送信が大幅に遅延したり、正常に行われない場合がありました。

# LINEログイン

  • LINEログインを正常に行うことができない場合がありました。

# LIFF/LINEミニアプリ

  • LIFF/LINEミニアプリを正常に利用できない場合がありました。
  • サービスメッセージが正常に送信されない場合がありました。

# LINE Developersコンソール

  • LINE Developersコンソールの一部機能が正常に利用できない場合がありました。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。

何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/07/20

ブロックチェーンサービスのチャネルにはLIFFアプリを追加できなくなりました

2021年6月17日にお知らせしたとおり、2021年7月20日より、LINE Developersコンソールにおいて、ブロックチェーンサービスのチャネルにはLIFFアプリを追加できなくなりました。なおLINEログインおよびLINEミニアプリのチャネルはこの変更の影響を受けません。

LIFFアプリを追加できるチャネルタイプの、変更前と変更後の差異については以下の表を参照してください。

項目 変更前 変更後(現在)
チャネルタイプ

# 仕様変更日

2021年7月20日 JST(GMT+9)

# 影響

すでにブロックチェーンサービスチャネルに追加済みのLIFFアプリは、仕様変更後も引き続き動作しますが、非推奨となるため以下の制限があります。

  • LIFFの機能拡張に対応できません。
  • 今後、LIFFアプリが使用できなくなる可能性があります。

制限を受けずに、今後もLIFFのすべての機能を利用したい場合は、「LINEログインチャネルへの移行」に従って、LIFFアプリをブロックチェーンサービスチャネルからLINEログインチャネルへ移行してください。

# LINEログインチャネルへの移行

ブロックチェーンサービスチャネルに追加済みのLIFFアプリを、今後も制限なく使用したい場合は、LINEログインチャネルにLIFFアプリを追加し直してください。

LIFFアプリを別のチャネルへ追加し直すと、LIFFアプリIDが再発行されるため、以下の点に注意してください。

  • LIFF v2を利用している場合は、liff.init()に指定するLIFFアプリIDを変更してください。
  • LIFFを起動するためのLIFF URL(例:https://liff.line.me/1234567890-AbcdEfgh)が変更されます。

詳しくは、『LIFFドキュメント』の「LIFFアプリをチャネルに追加する」を参照してください。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/07/12

LIFF v2.12.0をリリースしました

LIFF v2.12.0をリリースしました。

今回のバージョンアップでは、SDK内部の挙動の変更のみで、機能の変更はありません。

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.12.0にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.12.0もしくはyarn add @line/liff@2.12.0を実行するとv2.12.0にバージョンアップされます。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/07/01

LIFFにおいて[連結]で生成されたURLを[置換(後方互換性モード)]仕様に変換するコード例を削除しました

2021年5月31日に告知したとおり、[LIFF URLの追加情報の処理方法]の[置換(後方互換性モード)]の廃止に伴い、「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は2021年6月末をもって提供終了しました。

現在のLIFFアプリおよびLINEミニアプリのURLの仕様について詳しくは、『LIFFドキュメント』の「LIFFアプリを開く」を参照してください。


2021/06/24

LIFF v2.11.1をリリースしました

LIFF v2.11.1をリリースしました。

LIFF v2.11.1では以下の不具合を修正しています。

# LIFFアプリ初期化後にURLフラグメントがURLエンコードされる不具合を修正しました

LIFF v2.11.0では、URLフラグメント(例:#url-fragment)を含むLIFF URLにアクセスした際に、LIFFアプリ初期化後(liff.init()実行後)にURLフラグメントがURLエンコードされる不具合がありました。

LIFF v2.11.1では、liff.init()後もURLフラグメントがURLエンコードされないように不具合を修正しました。

# liff.init()後のURLフラグメントの例

以下の例では、LIFF v2.11.0はliff.init()後に、URLフラグメント(#url/fragment)内のスラッシュ(/)がURLエンコード(%2F)されています。

LIFFバージョン LIFF URL liff.init()後のURL
v2.11.0 https://liff.line.me/{liffId}#url/fragment https://liff.line.me/{liffId}#url%2Ffragment
v2.11.1 https://liff.line.me/{liffId}#url/fragment https://liff.line.me/{liffId}#url/fragment
LIFF v2.11.1へのアップデートをおすすめします

LIFF v2.11.0を利用したLIFFアプリの場合、ブラウザの種類(LIFFブラウザLINE内ブラウザ外部ブラウザ)に限らず本不具合が発生します。また、LIFF URL(例:https://liff.line.me/{liffId}/#url/fragment)だけでなく、エンドポイントURL(例:https://example.com/#url/fragment)に直接アクセスした場合も同様に本不具合が発生します。

意図しない挙動を避けるため、LIFF v2.11.0を利用している場合は、v2.11.1へのアップデートをおすすめします。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/06/17

ブロックチェーンサービスのチャネルにはLIFFアプリを追加できなくなります

2021年7月20日以降、LINE Developersコンソールにおいて、ブロックチェーンサービスのチャネルにはLIFFアプリを追加できなくなります。なおLINEログインおよびLINEミニアプリのチャネルはこの変更の影響を受けません。

LIFFアプリを追加できるチャネルタイプの、変更前と変更後の差異については以下の表を参照してください。

項目 変更前 変更後
チャネルタイプ

# 仕様変更予定日

2021年7月20日 JST(GMT+9)

# 影響

すでにブロックチェーンサービスチャネルに追加済みのLIFFアプリは、仕様変更後も引き続き動作しますが、非推奨となるため以下の制限があります。

  • LIFFの機能拡張に対応できません。
  • 今後、LIFFアプリが使用できなくなる可能性があります。

制限を受けずに、今後もLIFFのすべての機能を利用したい場合は、「LINEログインチャネルへの移行」に従って、LIFFアプリをブロックチェーンサービスチャネルからLINEログインチャネルへ移行してください。

# LINEログインチャネルへの移行

ブロックチェーンサービスチャネルに追加済みのLIFFアプリを、今後も制限なく使用したい場合は、LINEログインチャネルにLIFFアプリを追加し直してください。

LIFFアプリを別のチャネルへ追加し直すと、LIFFアプリIDが再発行されるため、以下の点に注意してください。

  • LIFF v2を利用している場合は、liff.init()に指定するLIFFアプリIDを変更してください。
  • LIFFを起動するためのLIFF URL(例:https://liff.line.me/1234567890-AbcdEfgh)が変更されます。

詳しくは、『LIFFドキュメント』の「LIFFアプリをチャネルに追加する」を参照してください。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/06/14

LIFF v2.11.0をリリースしました

LIFF v2.11.0をリリースしました。

LIFF v2.11.0では、セキュリティ上の観点から以下の修正を行いました。

# liff.init()後に一次リダイレクト先URLから機密情報が除外されるようになりました

セキュリティ上の観点から、liff.init()がresolveされたタイミングで、一次リダイレクト先URLからアクセストークンなどの機密情報を含むURLフラグメントが除外されるようになりました。そのため、メソッドチェーンのthen()メソッド内の処理では、機密情報を含まない一次リダイレクト先URLが現在のURLとして扱われます。

# リダイレクトの例

LIFF URLがhttps://liff.line.me/{liffId}/pathで、エンドポイントURLがhttps://example.comだった場合、以下のようにリダイレクトされます。

機密情報が除外されるタイミング

番号 項目 URL
LIFF URL https://liff.line.me/{liffId}/path
一次リダイレクト先URL https://example.com/?liff.state=path
#access_token=xxx&context_token=xxx&
feature_token=xxx&id_token=xxx&client_id=xxx
liff.init()後のURL https://example.com/?liff.state=path
二次リダイレクト先URL https://example.com/path

# liff.init()時のサンプルコード

liff.init().then()メソッド内では、機密情報が除外されます。

console.log(window.location.href);
// https://example.com/?liff.state=path#access_token=xxx&context_token=xxx&feature_token=xxx&id_token=xxx&client_id=xxx

liff.init({liffId: myLiffId}).then(() => {
  console.log(window.location.href);
  // https://example.com/?liff.state=path
});
Google Analyticsなど外部のロギングツールの利用について

Google Analyticsなど外部のロギングツールを利用する場合は、LIFFアプリにアクセスしたユーザーの機密情報をよりセキュアに管理するために、LIFF v2.11.0へのアップデートをお勧めします。ロギングツールへは、機密情報を含まないliff.init()実行後のURLを送るようにしてください。

liff.init({liffId: myLiffId}).then(() => {
    ga('send', 'pageview');
})

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/06/14

LINE 11.10.0以降LIFFアプリのヘッダー部分のアイコンが見やすくなります

LINE 11.10.0以降、LIFFアプリのヘッダー部分のデザインがより見やすくなります。

LIFFのヘッダー部分に使用されている「閉じる」ボタン、「シェア」ボタン、「戻る」ボタンを含むすべてのアイコンのデザインが以下のように変更されます。

LINE 11.9.x以前 LINE 11.10.0以降
古いLIFFのヘッダーアイコン 新しいLIFFのヘッダーアイコン

# 適用環境

アイコンの新デザインは、以下の環境において適用されます。

項目 環境
LINEバージョン v11.10.0以降
ブラウザ LIFFブラウザLINE内ブラウザおよび外部ブラウザには適用されません。)
画面サイズ すべての画面サイズ(CompactTallFull

なお、本アップデートはデザインのみの変更であり、既存の機能に影響はありません。

2021/05/31

LIFF間遷移前のLIFFアプリに戻る際にコンテンツが正しく表示されなくなる不具合に暫定的な対応を行いました

iOS14.5.x上のLINEまたはSafari、もしくはmacOS上のSafari 14.xにおいて、LIFF間遷移後に戻るボタンを押すかブラウザバックを行った際、URLは遷移前のLIFF URLに戻るが、画面の表示が変わらない、もしくは画面が空白になる不具合が発生していました。

LIFF間遷移前のLIFFアプリに戻ると画面が空白になる

LIFF間遷移前のLIFFアプリに戻ると画面が空白になる図

# 不具合が発生する環境

  • iOS 14.5.x上のLINEおよびSafari
  • macOS上のSafari 14.x

# 不具合の原因

本現象は、Apple WebKit (opens new window)の不具合の影響で発生します。

すでにWebKit Bugzilla (opens new window)へ問題の報告と調査を依頼していますが、暫定的な措置としてLIFFサーバー側でLIFF URLの追加情報の処理方法を変更することで対応しました。

# 暫定対応

暫定対応として、LIFFサーバーにおけるLIFF URLの追加情報の処理方法を変更し、不具合の発生を回避する措置を行いました。

なお、これまでLIFF URLの追加情報は、パス(/path)、クエリパラメータ(?key=value)、URLフラグメント(#URL-fragment)のすべてが、エンドポイントURLに連結され、2次リダイレクト先URLにリダイレクトされていました。今回の暫定対応により、iOS 14.5およびSafari 14.xでLIFFアプリを起動している場合に限り、LIFF URLの追加情報の内、URLフラグメントのみリダイレクト時に除外されるようになりました。

iOS 14.5およびSafari 14.x以外の環境では、従来のLIFF URLの追加情報の処理方法と変更ありません。

LIFFアプリ側の対応は不要です

暫定対応は、LIFFサーバー側のみで完結しています。LIFF SDKのバージョンアップやコードの改修などLIFFアプリ側での対応は必要ありません。

追加情報の処理方法の比較:

比較 LIFF URL エンドポイントURL 2次リダイレクト先URL
修正前 https://liff.line.me/{liffId}
/path?key=value#URL-fragment
https://example.com https://example.com
/path?key=value#URL-fragment
修正後 https://liff.line.me/{liffId}
/path?key=value#URL-fragment
https://example.com https://example.com
/path?key=value
URLフラグメントを含めたい場合

暫定対応の影響により、LIFF URLの追加情報に含まれたURLフラグメントはリダイレクト時に除外されます。ただし、URLフラグメントを含むエンドポイントURLに直接アクセスした場合は、URLフラグメントも含めたLIFF URLへ遷移できます。

LIFF間遷移時にURLフラグメントを使用したい場合は、LIFF URL(例:https://liff.line.me/{liffId}#URL-fragment)ではなく、エンドポイントURL(例:https://example.com#URL-fragment)に直接アクセスするように実装してください。

なお、これまで同様LINE Developersコンソールの[エンドポイントURL]には、URLフラグメントは指定できません。

LIFF間遷移について詳しくは、『LIFFドキュメント』の「LIFFアプリから別のLIFFアプリを開いた場合の動作について」を参照してください。

2021/05/31

LINE DevelopersコンソールのLIFFチャネルから[LIFF URLの追加情報の処理方法]設定を削除しました

2021年3月1日にお知らせしたとおり、LINE Developersコンソールで[LIFF URLの追加情報の処理方法]の[置換(後方互換性モード)]が廃止されました。

現在、すべてのLIFFアプリおよびLINEミニアプリのURLは[連結]で開くため、LINE DevelopersコンソールのLIFFチャネルから[LIFF URLの追加情報の処理方法]設定を削除しました。

この設定削除によるLIFFアプリおよびLINEミニアプリの動作への影響はありません。

連結]の仕様については、LIFFドキュメントの「2次リダイレクト先URLを作成する」を参照してください。

なお[置換(後方互換性モード)]廃止に伴う一時的な対応策として提供しておりました「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は、2021年6月末をもって提供終了予定です。

2021/05/17

LIFF v2.10.0をリリースしました

LIFF v2.10.0をリリースしました。

LIFF v2.10.0では以下の不具合を修正しています。

# 外部ブラウザでLIFFアプリ初期化時に古いコンテキストトークンが参照される不具合を修正しました

外部ブラウザで、LIFF v2.9.1以前のLIFFアプリにログインした際、以前のセッションでLIFFアプリ初期化時(liff.init()実行時)にlocalStorageに保存された古いコンテキストトークンを参照してしまい、予期しない動作になる不具合を修正しました。

コンテキストトークンとは

コンテキストトークンとは、画面サイズやユーザーIDなど、liff.getContext()メソッドで取得可能なLIFFアプリを起動している環境に関する情報を保有するトークンを指します。LIFFアプリ初期化時(liff.init()メソッド実行時)に、contextキーとして、ブラウザのlocalStorageに保存されます。

# アクセストークンの有効期限を確認するタイミングの見直し

LIFFアプリの初期化時(liff.init()実行時)には、以前のセッションで生成したアクセストークンの有効期限を確認し、期限が切れている場合はコンテキストトークンを破棄する処理が実行されます。しかしLIFF v2.9.1以前のバージョンでは、有効期限の確認処理がLIFFアプリ初期化処理の末尾の段階で実行されるため、破棄されていない古いコンテキストトークンを参照して初期化処理が進行してしまい、予期しない動作になる場合がありました。

LIFF v2.10.0では、アクセストークンの有効期限を確認する処理の順序を、LIFFアプリの初期化処理の初めの方に変更したことにより、古いコンテキストトークンを破棄したうえで初期化処理を行えるようになりました。

liff.getContext()メソッドで取得する情報が最新であることは保証されません

コンテキストトークンは、アクセストークンの有効期限が切れたタイミングで破棄されます。LIFF v2.10.0であってもアクセストークンが有効期限内である限り、liff.getContext()メソッドで取得できるコンテキスト情報は変わりません。そのため、liff.getContext()メソッドで取得する情報が常に最新であることは保証されません。

# バージョンごとのコンテキストトークン破棄のタイミング

以下は、LIFF v2.9.1以前とLIFF v2.10.0のアクセストークンの有効期限の確認と、コンテキストトークン破棄のタイミングの比較です。

LIFFの
バージョン
コンテキストトークンがlocalStorageに保存される流れ
v2.9.1以前 以前のコンテキストトークン破棄のタイミング
v2.10.0 v2.10.0以降のコンテキストトークン破棄のタイミング
LIFFブラウザおよびLINE内ブラウザの場合

LIFFブラウザおよびLINE内ブラウザでは、今回のバージョンアップによる影響は受けません。

コンテキストトークンが保有する情報について詳しくは、『LIFF APIリファレンス』の「liff.getContext()」を参照してください。

2021/04/27

LIFF v2.9.1をリリースしました

LIFF v2.9.1では、以下の不具合が修正されました。機能に変更はありません。

# LIFF SDKのnpmパッケージ利用時の不具合を修正しました

LIFF SDKのnpmパッケージをTypeScriptで利用しようとすると、コンパイル時にエラーが発生する不具合を修正しました。LIFF v2.9.1ではTypeScript利用時でも問題なくコンパイルされます。

なお、今回の修正はnpm版とCDN版両方のLIFF SDKに適用されます。

LIFF SDKのnpmパッケージに関して詳しくは、「npmパッケージを利用する」を参照してください。

コンパイル時のエラーの対処方法

TypeScript利用時のコンパイルエラーの対処方法としてLIFF v2.9.1へのアップグレードを推奨しますが、アップグレードができない場合、以下の方法でコンパイルエラーを解消できます。

tsconfig.jsonなどのTypeScriptの設定ファイルで、skipLibCheck (opens new window)オプションを有効化するとコンパイルエラーが発生しません。


CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.9.1にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.9.1もしくはyarn add @line/liff@2.9.1を実行するとv2.9.1にバージョンアップされます。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/04/16

【復旧済み/更新】LINEログインおよびLIFF/LINEミニアプリ障害のお知らせ

2021年4月19日追記

原因」および「状況」を更新しました。

LINEログインおよびLIFF、LINEミニアプリにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

2021/4/16 17:54頃 〜 18:35頃 JST(GMT+9)

# 原因

サーバー障害

# 影響範囲

  • LINEログイン
  • LIFF/LINEミニアプリ

# 状況

LINEログインおよびLIFF/LINEミニアプリの機能が、正常に利用できない場合がありました。

以下のような事象が発生していたことを確認しています。

  • LINEログインに失敗する
  • LIFF/LINEミニアプリにアクセスできない
  • LIFFで提供するAPIが利用できない

LINEは今後もお客様への一層のサービス向上に取組んでまいります。

何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/04/13

LIFF v2.9.0をリリースしました

LIFF v2.9.0をリリースしました。 今回のバージョンアップでは、SDK内部の挙動の変更のみで、機能の変更はありません。

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.9.0にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.9.0もしくはyarn add @line/liff@2.9.0を実行するとv2.9.0にバージョンアップされます。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/04/05

LIFF v1が非推奨になりました

2019年10月16日に告知したとおり、LIFF v1は廃止される予定です。これに伴い、2021年4月1日にLIFF v1は非推奨になりました。

「非推奨」とは

「非推奨」とは将来のメジャーリリースでその機能や性能を削除する予定であることを意味します。 非推奨期間になると、メンテナンス期間で保証されていた、既存機能を維持するために必要なバグ修正やセキュリティ改善が行われません。たとえばLIFF v1に不具合があったり、セキュリティイシューがあったとしても、SDKやAPIは更新されません。非推奨期間は、LIFF v1が廃止される前に開発者が計画を立ててSDKを更新するために設けている期間です。LIFFのメジャーリリースの予定に関して詳しくは、『LIFFドキュメント』の「メジャーバージョンのステータス」を参照してください。

# 影響

LIFF v1で提供されている機能は廃止まで引き続き動作しますが、LIFF v2への移行を推奨いたします。

# 必要なアクション

# LIFF v1を現在使用している場合

LIFF v1廃止前にLIFF v2へ移行する必要があります。移行について詳しくは、「LIFF v2に移行する」を参照してください。

# LIFF v1を使用していない場合

特に必要なアクションはありませんが、LIFF v1の新規の使用は推奨しません。

# LIFF v2に移行する

LIFFのバージョンはLIFF SDKのバージョンで決定されます。既存のLIFFアプリがLIFF v1を使用している場合は、LIFFアプリで読み込むSDKを変更し、動作確認を行えばLIFF v2に移行できます。

# LIFF v1とLIFF v2の違い

LIFF v1とLIFF v2はLIFFアプリの初期化の方法や仕様が異なります。

# 最低動作環境の違い

LIFF v2とLIFF v1では、LIFFアプリをLIFFブラウザで開く場合の最低動作環境が異なります。最低動作環境の違いおよびその詳細は以下を参照してください。

LIFF SDKバージョン 最低動作環境 詳細
LIFF v1
  • iOS:iOS 8以降
  • Android:4.2以降
  • LINE:v7.14以降
『LIFF v1 APIリファレンス』の「動作環境
LIFF v2
  • iOS:iOS 12.0以降
  • Android:5.0以降
  • LINE:v9.14.0以降
『LIFFドキュメント』の「推奨環境
Note

最低動作環境以降のバージョンでも、機能や設定によっては動作しない場合や画面が正常に表示されない場合があります。

# インストール方法の違い

LIFF v1はCDNでのインストール方法のみ提供していましたが、LIFF v2ではCDNに加えてnpmでのインストールが可能です。インストール方法およびその詳細は以下を参照してください。

LIFF SDKバージョン LIFF SDKのインストール方法 詳細
LIFF v1 CDNパスを指定 『LIFFドキュメント』の「LIFF SDKを組み込む
LIFF v2
  • CDNパスを指定
  • npmパッケージを利用
『LIFFドキュメント』の「LIFFアプリにLIFF SDKを組み込む
# 初期化の方法の違い

LIFF v1は引数なしでliff.init()を呼び出しますが、LIFF v2はliff.init()を呼び出す際にliffIdプロパティと、その値としてLIFFアプリのLIFF IDを引数に渡す必要があります。

LIFF v1の初期化方法:

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

LIFF v2の初期化方法:

// Using a Promise object
liff
  .init({
    liffId: "123456-abcedfg" // Use own liffId
  })
  .then(() => {
    // Start to use liff's api
  })
  .catch((err) => {
    // Error happens during initialization
    console.log(err.code, err.message);
  });

// Using a callback
liff.init({ liffId: "123456-abcedfg" }, successCallback, errorCallback);

初期化方法の違いおよび関連ドキュメントについては、以下を参照してください。

LIFF SDKバージョン LIFFアプリの初期化方法 詳細・コード例
LIFF v1 liff.init()を呼び出す 『LIFF v1 APIリファレンス』のliff.init()
LIFF v2 liff.init()liffIdプロパティと、その値としてLIFFアプリのLIFF IDを渡して呼び出す 『LIFF v2 APIリファレンス』のliff.init()
# 機能の違い

LIFF v2では、LIFF v1に加えさらに多くの機能が利用できます。

  1. 外部ブラウザでLIFFアプリの動作が可能

LIFF v1では、LIFFアプリはLIFFブラウザでのみ動作していました。LIFF v2からは、外部ブラウザでも動作します。このため、一般のウェブアプリと同じ開発環境でLIFFアプリを開発できます。

  1. 利用可能なLIFFメソッド

LIFF v2はLIFF v1に加えさらに多くのLIFFメソッドが利用できます。LIFF v2で追加されたメソッドの一覧は以下を参照してください。

各メソッドのコード例や詳細は、『LIFF v2 APIリファレンス』を参照してください。

# 移行に役立つリソース

LIFF v2の仕様や開発方法の確認には、LIFFスターターアプリ (opens new window)が便利です。詳しくは、『LIFFドキュメント』の「LIFFスターターアプリを試してみる」を参照してください。

2021/03/23

【復旧済み/更新】一部LIFF API障害のお知らせ

2021年3月26日追記

当初、障害の発生日時を「2021/3/22 13:55頃〜16:30 頃 JST(GMT+9)」としておりましたが、お伝えした復旧時刻以降もliff.getFriendship()の一部の動作において問題が継続して発生しておりました。また障害の発生時刻についても、調査の結果、変更がありました。 そのため、本ニュースの「発生日時」を正確な時刻に更新しております。お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

LIFFにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

2021/3/22 10:15頃 〜 2021/3/25 11:36頃 JST(GMT+9)

# 原因

サーバー障害

# 影響範囲

ユーザーとLINE公式アカウントの友だち関係を取得するLIFFメソッド、liff.getFriendship()の利用

# 状況

発生日時において、liff.getFriendship()の利用時にLIFFアプリを開いているブラウザでオリジン間リソース共有(CORS) (opens new window)ポリシー違反のエラーが発生し、正常に機能が利用できない場合がありました。すでに復旧しており、現在は正常にliff.getFriendship()をご利用いただけます。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2021/03/16

LIFF v2.8.1をリリースしました

LIFF v2.8.1をリリースしました。

今回のバージョンアップでは、SDK内部のリファクタリングのみで、機能の変更はありません。

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.8.1にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.8.1もしくはyarn add @line/liff@2.8.1を実行するとv2.8.1にバージョンアップされます。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/03/01

LINE v11.3.0においてLIFFアプリのUIが変更されます

LINE v11.3.0で開いたLIFFアプリでは、以下のようにUIが変更されます。

# LIFF間遷移時に表示するトーストが変更されます

LINE v11.3.0では、LIFFブラウザで開いたLIFFアプリを閉じずに、別のLIFFアプリに遷移する「LIFF間遷移」時に表示されるトーストが変更されます。この変更により、遷移先のLIFFアプリをユーザーが識別しやすくなります。

表示されるトーストのデザインは、AndroidとiOSで異なります。下図は、iPhoneを使った場合のトーストの例です。

LINE v11.2.x以前のバージョンでは、トーストメッセージが画面中央に表示され、LINE v11.3.0では画面下部にトーストメッセージが表示されます

変更内容 対象OS LINE v11.2.x以前 LINE v11.3.0
メッセージ(※1)
  • iOS
  • Android
アプリケーションが切り替わりました。 {LIFFアプリの名称}へ移動しました。(※2)
表示位置 iOSのみ(※3) 画面中央の表示 画面下部に表示

※1 トーストのメッセージは、LINEの言語設定に従い多言語で表示されますが、{LIFFアプリの名称}は多言語対応されないため、英語など多くのユーザーにとって馴染みのある言語でLIFFアプリ名を指定することをおすすめします。

※2 {LIFFアプリの名称}の部分には、LINE Developersコンソールの[LIFF]タブの[LIFFアプリ名]で指定したLIFFアプリ名が表示されます。[LIFFアプリ名]の指定方法について詳しくは、『LIFFドキュメント』の「LIFFアプリをチャネルに追加する」を参照してください。

※3 Androidの場合、LINE v11.2.x以前のバージョンでも画面下部にトーストが表示されます。

LIFF間遷移について詳しくは、『LIFFドキュメント』の「LIFFアプリから別のLIFFアプリを開いた場合の動作について」を参照してください。

# iPadOS版LINEでLIFFアプリがモーダルウィンドウで表示されるように変更されます

LINE v11.3.0では、多くのポートレートモード(縦向き表示)用にデザインされたLIFFアプリでの体験をより良くするために、iPadで開いたLIFFアプリは「formSheet (opens new window)」サイズ(幅540×高さ620ポイント)のモーダルウィンドウで表示されるようになります。

LINE Developersコンソールの[LIFF]タブのサイズの設定(Compact/Tall/Full)に関わらず、iPad上のLINE v11.3.0で表示したLIFFアプリは、必ずformSheetサイズのモーダルウィンドウで表示されます。

画面サイズをCompactに指定したLIFFアプリの表示例:

iPadでのformSheetモーダル表示

ランドスケープモード(横向き表示)時の画面比率について

formSheetは、ランドスケープモード(横向き表示)時もポートレートモード(縦向き表示)の画面比率(幅540x高さ620ポイント)で表示されます。

ランドスケープモード

2021/03/01

【更新】LIFFアプリおよびLINEミニアプリのパーマネントリンクのリダイレクト設定から「置換(後方互換性モード)」が廃止されました

2020年11月20日にお知らせしたとおり、2021年3月1日に、LINE Developersコンソールで[LIFF URLの追加情報の処理方法]の[置換(後方互換性モード)]が廃止されました。 現在、すべてのLIFFアプリおよびLINEミニアプリのURLは[連結]で開きます。

LIFF URLの追加情報の処理方法

[置換(後方互換性モード)]で動作してしまうケース

2021年3月1日以降も、LIFF SDK v2.2.1以下といった[連結]をサポートしていない環境では、[置換(後方互換性モード)]で動作しますが、LIFFアプリおよびLINEミニアプリの正常な動作は保証されません。LIFF SDK v2.3.0以上へのバージョンアップをお勧めします。

# [置換(後方互換性モード)]から[連結]への移行

既存のLIFFアプリおよびLINEミニアプリが[置換(後方互換性モード)]を利用していた場合は、以下の2点を行い、[連結]に対応する必要があります。

# LIFF SDKのバージョンをv2.3.0以上にする

v2.3.0よりも前のバージョンは[連結]をサポートしていないため、v2.3.0以上にバージョンアップを行います。

すでにv2.3.0以上のバージョンをお使いの場合は、バージョンアップは不要です。

# エンドポイントURLとLIFF URLを[連結]に対応させる

連結]に設定が切り替わると、LINE Developersコンソールの[エンドポイントURL]に指定したパスやクエリパラメータ(/2020campaign/?key=value)が、2次リダイレクト先に含まれるようになります。そのため、[置換(後方互換性モード)]設定時と同じエンドポイントURLやLIFF URLでは、意図しないURLへリダイレクトされる可能性があります。

連結]に対応するように、[エンドポイントURL]とLIFF URLを修正してください。

置換(後方互換性モード)]と[連結]の違いは、『LIFFドキュメント』の「2次リダイレクト先URLを作成する」を参照してください。

設定変更後は正しくLIFFアプリおよびLINEミニアプリが開くか検証してください

既存のLIFFアプリおよびLINEミニアプリの設定を[連結]に移行したら、必ず新しい設定で正しくアプリが開くか検証してください。正しく開かない場合、LIFF SDKのバージョンや、[エンドポイントURL]およびLIFF URLを[連結]に適した設定に修正します。

# [連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換する(2021年7月1日追記)

2021年7月1日追記

2021年5月31日に告知したとおり、「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は2021年6月末をもって提供終了しました。

LIFFアプリおよびLINEミニアプリが[連結]に移行した後も、[置換(後方互換性モード)]の仕様で2次リダイレクト先URLに遷移させる必要がある場合は、[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換する関数をご使用ください。

[置換(後方互換性モード)]の処理方法で2次リダイレクト先URLを生成したい場合のみご使用ください

[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換する関数は、これまでどおり[置換(後方互換性モード)]と同じ処理方法で、2次リダイレクト先URLを生成したい場合の情報です。すでにアプリが[連結]に対応している場合は、関数の使用は不要です。

また、この関数は[置換(後方互換性モード)]廃止に伴う一時的な対応策として提供するものであり、コードの利用を積極的に推奨するものではありません。LIFFアプリおよびLINEミニアプリを正しく[連結]に対応させることが、最も矛盾がなく整合性のとれた解決策になります。

この関数は期間限定で掲載しています

『LIFFドキュメント』の「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は、[置換(後方互換性モード)]廃止に伴う[連結]への移行のサポートを目的としています。[置換(後方互換性モード)]廃止後一定期間が経過したら、該当のページは削除される可能性があります。ページ削除後もコードの処理内容を確認したい場合は、事前に[連結]で生成された2次リダイレクト先URLを変換する関数をダウンロードするのダウンロードリンクから関数をダウンロードし、必要に応じて参照してください。

2021/02/15

LIFF v2.8.0をリリースしました

LIFF v2.8.0をリリースしました。

LIFF v2.8.0では以下の不具合を修正しています。

機能の変更および追加はありません。

# liff.init()が2次リダイレクト先URLにリダイレクトする前にresolveされる不具合を修正しました

LIFF v2.7.1以前のバージョンでは、2次リダイレクト先URLにリダイレクトする前に、liff.init()がresolveされる不具合がありました。この不具合により、then()メソッドの処理が、2次リダイレクト先URLへのリダイレクト前後に重複して実行されることがありました。

以下のコード例では、2次リダイレクト先URLへのリダイレクト前後に、liff.init()が一度ずつresolveされるため、「liff.init() is resolved.」というアラートが二度表示されます。

liff.init()がresolveされたらアラートを表示するコード例:

liff.init(myLiffId).then(() => {
    // This process is executed after liff.init() is resolved.
    window.alert('liff.init() is resolved.');
});

LIFF v2.8.0では、2次リダイレクト先URLにリダイレクトされた時点で初めてliff.init()がresolveされるため、then()メソッドの処理が重複して実行される不具合は修正されています。上記のコード例では、一度のみアラートが表示されます。

LIFFのバージョン liff.init()がresolveされるタイミング
v2.7.1以前 resolve-timing-v2-7-0
v2.8.0 resolve-timing-v2-8-0

# URLエンコードされたクエリパラメータが意図せずデコードされる不具合を修正しました

LIFF v2.7.1以前のバージョンでは、開発者がLIFF URLにURLエンコードしたクエリパラメータ(例:?t=http%3A%2F%2Fexample.com)を付与した場合、リダイレクト時にクエリパラメータ部分がデコード(例:?t=http://example.com)されていました。そのため、2次リダイレクト先URLが開発者の意図しないURLになる場合がありました。

LIFF v2.8.0では、クエリパラメータはデコードされず、URLエンコードされたままリダイレクトされるように修正されています。

LIFF URL「https://liff.line.me/{liffId}?t=http%3A%2F%2Fexample.com」を開いた時のリダイレクトの流れ:

LIFFのバージョン 1次リダイレクト先URL 2次リダイレクト先URL
v2.7.1以前 https://endpoint.example.jp/?liff.state=
?t=http%3A%2F%2Fexample.com
https://endpoint.example.jp/
?t=http://example.com
v2.8.0 https://endpoint.example.jp/?liff.state=
%3Ft%3Dhttp%253A%252F%252Fexample.com
https://endpoint.example.jp/
?t=http%3A%2F%2Fexample.com
クエリパラメータを含むLIFF URLの場合

URLエンコードされたクエリパラメータを含むLIFF URLを利用している場合は、意図しないURLへリダイレクトされることを防ぐため、v2.8.0へのバージョンアップをおすすめします。

LIFFアプリのリダイレクトについて詳しくは、『LIFFドキュメント』の「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。

2021/02/02

【更新】LIFFにおいて[連結]で生成されたURLを[置換(後方互換性モード)]仕様に変換するコード例を公開しました

2021年7月1日追記

2021年5月31日に告知したとおり、「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は2021年6月末をもって提供終了しました。

2020年11月20日にお知らせしたとおり、2021年3月1日にLINE Developersコンソールで[LIFF URLの追加情報の処理方法]の[置換(後方互換性モード)]を廃止します。廃止以降、すべてのLIFFアプリおよびLINEミニアプリのURLは[連結]で開くようになります。

これに伴い、[連結]に移行後もこれまでの[置換(後方互換性モード)]の仕様で2次リダイレクト先URLに遷移させる必要のあるLIFFアプリおよびLINEミニアプリのための処理方法を紹介するドキュメントを公開しました。

このドキュメントでは、[連結]によって生成された2次リダイレクト先URLをユーザーがクリックした際、[置換(後方互換性モード)]の仕様に従ったURLにリダイレクトさせる処理を行う関数と、そのロジックを紹介しています。

変換コードを使用すると

このドキュメントは期間限定で掲載しています

『LIFFドキュメント』の「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は、[置換(後方互換性モード)]廃止に伴う[連結]への移行のサポートを目的としています。[置換(後方互換性モード)]廃止後一定期間が経過したら、該当のページは削除される可能性があります。削除後もコードの処理内容を確認したい場合は、事前に[連結]で生成された2次リダイレクト先URLを変換する関数をダウンロードするのダウンロードリンクから関数をダウンロードし、必要に応じて参照してください。

2021/01/21

LIFFアプリおよびLINEミニアプリの「セーフエリア」の取り扱いが厳格化します

iOS版およびiPadOS版LINE v11.0.0以降、「セーフエリア」の取り扱いが厳格化します。

今後は、iPhone Xなど角丸のディスプレイを持つデバイスにおいて、画面サイズFullに指定したLIFFアプリおよびLINEミニアプリをディスプレイ全体を覆うレイアウトで表示するには、<meta>タグにviewport-fit=coverを指定する必要があります。

"viewport-fit=cover"指定の例

<meta name="viewport" content="width=device-width,initial-scale=1.0,viewport-fit=cover">

ただし、現行のiOSおよびiPadOSによる不具合のため、LINE v11.0.0では、<meta>タグにviewport-fit=coverを指定してもセーフエリアが無効化されないことが確認されています。今後のLINEのバージョンアップで修正を予定しています。

LINE v11.0.0でセーフエリアを無効化するには

LINE v11.0.0でも、ディスプレイ全体にレイアウトしたい場合は、viewport-fit=coverを指定したうえで、CSSで<html>タグにheight: 100vhを指定することで、セーフエリアを無効化できます。

 html { height: 100vh; }
「セーフエリア」とは

iOSおよびiPadOSの「セーフエリア」とは、角丸のディスプレイを持つデバイスで、ヘッダー/フッター部分に余白を残し、安全にレイアウトできる領域のことを指します。通常HTML内の<meta>タグにviewport-fit=coverを指定することで、セーフエリアを無効化し、ディスプレイ全体にレイアウトすることができます。

safe area

セーフエリアについて詳しくは、『Apple Developer』の「Layout Guides and Safe Area (opens new window)」を参照してください。

2021/01/20

LIFF v2.7.1をリリースしました

LIFF v2.7.1をリリースしました。
LIFF v2.7.1では以下の不具合を修正しています。

# LIFF v2.7.0を使ったLIFFアプリが外部ブラウザで起動できない場合がある不具合を修正しました

LIFF v2.7.0を使ったLIFFアプリを外部ブラウザで開くと、起動に失敗する場合がある不具合を修正しました。LIFF v2.7.1では、外部ブラウザでも正しくLIFFアプリが起動します。

すでにLIFF v2.7.0をご利用の場合

すでにLIFF v2.7.0を利用している場合は、LIFF v2.7.1へのアップデートをお勧めします。

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.7.1にアップデートされます。CDN固定パスやnpmパッケージ版のLIFF SDKを利用している場合は、手動でLIFF v2.7.1にアップデートしてください。

LIFF SDKの組み込み方法の種類について詳しくは、『LIFFドキュメント』の「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2021/01/18

【更新】【リマインド】2021年3月1日にLIFFアプリおよびLINEミニアプリのパーマネントリンクのリダイレクト設定から「置換(後方互換性モード)」が廃止されます

2021年2月2日追記

LIFFアプリおよびLINEミニアプリが[連結]に移行した後も、[置換(後方互換性モード)]の仕様で2次リダイレクト先URLに遷移させる必要がある場合の対応方法を追加しました。詳しくは、[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するを参照してください。

2020年11月20日のお知らせからの変更点

2020年11月20日のお知らせでは、[LIFF URLの追加情報の処理方法]を[連結]に設定すると、[置換(後方互換性モード)]へ戻せなくなる時期を「2021年1月11日」としておりましたが、「2021年1月19日」に変更になりました。更新後のスケジュールについて詳しくは、「廃止までのスケジュール」を参照してください。

2020年11月20日にお知らせしたとおり、2021年3月1日に、LINE Developersコンソールで[LIFF URLの追加情報の処理方法]の[置換(後方互換性モード)]を廃止します。 廃止以降、すべてのLIFFアプリおよびLINEミニアプリのURLは[連結]で開くようになります。

LIFF URLの追加情報の処理方法

現在、[置換(後方互換性モード)]に設定しているLIFFアプリおよびLINEミニアプリは、廃止日までに[連結]へ移行してください。

[置換(後方互換性モード)]の継続

2021年3月1日以降も、LINEバージョン10.10.0以下およびLIFF SDK v2.2.1以下といった[連結]をサポートしていない環境では、[置換(後方互換性モード)]の利用を継続できますが、LIFFアプリおよびLINEミニアプリの正常な動作は保証されません。[連結]への移行をお勧めします。

# 廃止までのスケジュール

時期 説明
2021年1月11日
2021年1月19日
  • 置換(後方互換性モード)]の利用は非推奨になります。
  • 新しくLIFFアプリおよびLINEミニアプリを作成する際に、[置換(後方互換性モード)]が選択できなくなります。
  • 連結]に設定を変更すると[置換(後方互換性モード)]に戻せなくなります。
2021年3月1日 置換(後方互換性モード)]が廃止されるため、すべてのLIFFアプリおよびLINEミニアプリで[連結]に設定が切り替わります。

# [置換(後方互換性モード)]から[連結]への移行

既存のLIFFアプリおよびLINEミニアプリが[置換(後方互換性モード)]を利用している場合は、廃止日(2021年2月28日)までに、以下の3点を行い、[連結]へ移行する必要があります。

# LIFF SDKのバージョンをv2.3.0以上にする

v2.3.0よりも前のバージョンは[連結]をサポートしていないため、v2.3.0以上にバージョンアップを行います。

すでにv2.3.0以上のバージョンをお使いの場合は、バージョンアップは不要です。

# エンドポイントURLとLIFF URLを[連結]に対応させる

連結]に設定を切り替えると、LINE Developersコンソールの[エンドポイントURL]に指定したパスやクエリパラメータ(/2020campaign/?key=value)が、2次リダイレクト先に含まれるようになります。そのため、[置換(後方互換性モード)]設定時と同じエンドポイントURLやLIFF URLでは、意図しないURLへリダイレクトされる可能性があります。

連結]に対応するように、[エンドポイントURL]とLIFF URLを修正してください。

置換(後方互換性モード)]と[連結]の違いは、『LIFFドキュメント』の「2次リダイレクト先URLを作成する」を参照してください。

設定変更後は正しくLIFFアプリおよびLINEミニアプリが開くか検証してください

既存のLIFFアプリおよびLINEミニアプリの設定を[連結]に移行したら、必ず新しい設定で正しくアプリが開くか検証してください。正しく開かない場合、LIFF SDKのバージョンや、[エンドポイントURL]およびLIFF URLを[連結]に適した設定に修正します。

# [連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコードを追加する(2021年7月1日追記)

2021年7月1日追記

2021年5月31日に告知したとおり、「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は2021年6月末をもって提供終了しました。

LIFFアプリおよびLINEミニアプリが[連結]に移行した後も、[置換(後方互換性モード)]の仕様で2次リダイレクト先URLに遷移させる必要がある場合は、[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換する関数をご使用ください。

この関数は期間限定で掲載しています

『LIFFドキュメント』の「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は、[置換(後方互換性モード)]廃止に伴う[連結]への移行のサポートを目的としています。[置換(後方互換性モード)]廃止後、一定期間が経過したら削除される可能性があります。削除後もコードの処理内容を確認したい場合は、事前に[連結]で生成された2次リダイレクト先URLを変換する関数をダウンロードするのダウンロードリンクから関数をダウンロードし、必要に応じて参照してください。

2021/01/14

LIFF v2.7.0をリリースしました

LIFF v2.7.0をリリースしました。
LIFF v2.7.0における変更点は以下のとおりです。

# RequireJSからnpmパッケージ版LIFF SDKを参照できるようになりました

RequireJS (opens new window)からnpmパッケージ版LIFF SDKを参照できるようになりました。

npmパッケージ版のLIFF SDKの組み込み方法は、『LIFFドキュメント』の「LIFFアプリにLIFF SDKを組み込む」を参照してください。

# liff.getDecodedIDToken()メソッドで取得したIDトークンのnameプロパティが文字化けする不具合を修正しました

LIFF v2.6.0以前のバージョンでは、liff.getDecodedIDToken()メソッドでデコード済みのIDトークンを取得した際に、ユーザー名に日本語など、アスキー文字以外のユニコード文字が含まれている場合、nameプロパティの値が文字化けする不具合がありました。

LIFF v2.7.0では不具合を修正し、日本語などユニコード文字で書かれたユーザー名も正しく取得できるようになりました。

ユーザー名がコニーのユーザーのIDトークンを取得した場合:

user profile of conny

LIFF v2.6.0以前 LIFF v2.7.0
{
"iss": "https://access.line.me",
"sub": "U272cada9c6f4c0c933b0713bc2f90f68",
"aud": "1234567890",
"exp": 1513142487,
"iat": 1513138887,
"name": "コニー", //文字化けします。
"picture": "https://profile.line-scdn.net/..."
}
{
"iss": "https://access.line.me",
"sub": "U272cada9c6f4c0c933b0713bc2f90f68",
"aud": "1234567890",
"exp": 1513142487,
"iat": 1513138887,
"name": "コニー", //正しく取得できます。
"picture": "https://profile.line-scdn.net/..."
}

liff.getDecodedIDToken()メソッドについて詳しくは、『LIFF APIリファレンス』の「liff.getDecodedIDToken()」を参照してください。

2021/01/14

【復旧済み】Webhookイベント送信障害のお知らせ

LIFF SDKのliff.sendMessages()メソッドを使ってメッセージをトークルームに送信した際に、対応するWebhookイベントがボットサーバーに送信されない障害が発生しておりましたが、すべて復旧いたしました。お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

なお、本障害による影響はWebhookイベントの送信にのみ限定されます。liff.sendMessages()メソッドで送信したメッセージは、トークルームでは正しく表示されています。

# 発生日時

2021/01/13 15:30頃〜22:19頃(GMT+9)

# 原因

サーバー障害

# 影響範囲

liff.sendMessages()メソッドでメッセージ送信した際のWebhookイベントの送信

# 状況

上記の時間帯において、Webhookイベントが送信されない障害が発生しました。現在、障害は復旧されており、Webhookイベントは正しく送信されます。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2020/12/07

LIFFブラウザのiOSのサポートバージョンが変更されました

LIFFブラウザのiOSのサポートバージョンがiOS 11以降から12.0以降に変更されました。iOS 11以前のバージョンでLIFFブラウザを開いた場合の動作については保証しません。

変更前 変更後
iOS 11以降 iOS 12.0以降

現在、LIFFブラウザは、以下の環境での動作を保証しています。

注意

プラットフォームおよびLINEのバージョンによっては、一部の機能が動作しない場合や画面が正常に表示されない場合があります。

LIFFアプリの動作環境について詳しくは、『LIFFドキュメント』の「動作環境」を参照してください。

2020/12/01

LIFF v2.6.0をリリースしました

LIFF v2.6.0をリリースしました。

今回のバージョンアップでは、SDK内部の挙動の変更のみで、機能の変更はありません。

CDNエッジパス(https://static.line-scdn.net/liff/edge/2/sdk.js)を利用している場合は、自動でv2.6.0にアップデートされています。

npmパッケージを利用している場合は、npm install @line/liff@2.6.0もしくはyarn add @line/liff@2.6.0を実行するとv2.6.0にバージョンアップされます。

LIFF SDKの組み込み方法について詳しくは、「LIFFアプリにLIFF SDKを組み込む」を参照してください。

2020/12/01

シェアターゲットピッカーのUIが改善されました

シェアターゲットピッカーのUIが改善されました。

友だち/グループの選択」画面のトークカテゴリで以下4点の変更が行われ、シェア対象のトークルームを見つけやすくなりました。

  • トークカテゴリの表示順が一番下に変更されました。
  • デフォルトで開くカテゴリが友だちからトークに変更されました。
  • これまでトークルームしか含まれていなかったトークカテゴリに、1対1トークグループも含まれるようになりました。
  • トークカテゴリ内のコンテンツの表示順が、アルファベット順から最近送信したトーク順に変更されました。

The order of items changes

シェアターゲットピッカーについて詳しくは、『LIFFドキュメント』の「ユーザーの友だちにメッセージを送信する」を参照してください。

2020/11/20

【更新】2021年3月1日にLIFFアプリおよびLINEミニアプリのパーマネントリンクのリダイレクト設定から「置換(後方互換性モード)」が廃止されます

2021年2月2日追記

LIFFアプリおよびLINEミニアプリが[連結]に移行した後も、[置換(後方互換性モード)]の仕様で2次リダイレクト先URLに遷移させる必要がある場合の対応方法を追加しました。詳しくは、[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換する(2021年2月2日追記)を参照してください。

2021年1月18日追記

LIFF URLの追加情報の処理方法]を[連結]に設定すると、[置換(後方互換性モード)]へ戻せなくなる時期を「2021年1月11日」としておりましたが、「2021年1月19日」に変更になりました。更新後のスケジュールについて詳しくは、「廃止までのスケジュール」を参照してください。

2021年3月1日に、LINE Developersコンソールで[LIFF URLの追加情報の処理方法]の[置換(後方互換性モード)]を廃止します。 廃止以降、すべてのLIFFアプリおよびLINEミニアプリのURLは[連結]で開くようになります。

LIFF URLの追加情報の処理方法

現在、[置換(後方互換性モード)]に設定しているLIFFアプリおよびLINEミニアプリは、廃止日までに[連結]へ移行してください。

[置換(後方互換性モード)]の継続

2021年3月1日以降も、LINEバージョン10.10.0以下およびLIFF SDK v2.2.1以下といった[連結]をサポートしていない環境では、[置換(後方互換性モード)]の利用を継続できますが、LIFFアプリおよびLINEミニアプリの正常な動作は保証されません。[連結]への移行をお勧めします。

# 廃止までのスケジュール(予定)

時期 説明
2021年1月11日
2021年1月19日
  • 置換(後方互換性モード)]の利用は非推奨になります。
  • 新しくLIFFアプリおよびLINEミニアプリを作成する際に、[置換(後方互換性モード)]が選択できなくなります。
  • 連結]に設定を変更すると[置換(後方互換性モード)]に戻せなくなります。
2021年3月1日 置換(後方互換性モード)]が廃止されるため、すべてのLIFFアプリおよびLINEミニアプリで[連結]に設定が切り替わります。

# [置換(後方互換性モード)]から[連結]への移行

既存のLIFFアプリおよびLINEミニアプリが[置換(後方互換性モード)]を利用している場合は、廃止日(2021年2月28日)までに、以下の3点を行い、[連結]へ移行する必要があります。

# LIFF SDKのバージョンをv2.3.0以上にする

v2.3.0よりも前のバージョンは[連結]をサポートしていないため、v2.3.0以上にバージョンアップを行います。

すでにv2.3.0以上のバージョンをお使いの場合は、バージョンアップは不要です。

# エンドポイントURLとLIFF URLを[連結]に対応させる

連結]に設定を切り替えると、LINE Developersコンソールの[エンドポイントURL]に指定したパスやクエリパラメータ(/2020campaign/?key=value)が、2次リダイレクト先に含まれるようになります。そのため、[置換(後方互換性モード)]設定時と同じエンドポイントURLやLIFF URLでは、意図しないURLへリダイレクトされる可能性があります。

連結]に対応するように、[エンドポイントURL]とLIFF URLを修正してください。

置換(後方互換性モード)]と[連結]の違いは、『LIFFドキュメント』の「2次リダイレクト先URLを作成する」を参照してください。

設定変更後は正しくLIFFアプリおよびLINEミニアプリが開くか検証してください

既存のLIFFアプリおよびLINEミニアプリの設定を[連結]に移行したら、必ず新しい設定で正しくアプリが開くか検証してください。正しく開かない場合、LIFF SDKのバージョンや、[エンドポイントURL]およびLIFF URLを[連結]に適した設定に修正します。

# [連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換する(2021年7月1日追記)

2021年7月1日追記

2021年5月31日に告知したとおり、「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は2021年6月末をもって提供終了しました。

LIFFアプリおよびLINEミニアプリが[連結]に移行した後も、[置換(後方互換性モード)]の仕様で2次リダイレクト先URLに遷移させる必要がある場合は、[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換する関数をご使用ください。

この関数は期間限定で掲載しています

『LIFFドキュメント』の「[連結]で生成されたURLを[置換(後方互換性モード)]仕様のURLに変換するコード例」は、[置換(後方互換性モード)]廃止に伴う[連結]への移行のサポートを目的としています。[置換(後方互換性モード)]廃止後一定期間が経過したら、該当のページは削除される可能性があります。ページ削除後もコードの処理内容を確認したい場合は、事前に[連結]で生成された2次リダイレクト先URLを変換する関数をダウンロードするのダウンロードリンクから関数をダウンロードし、必要に応じて参照してください。

2020/10/29

LIFF v2.5.0をリリースしました

LIFF v2.5.0をリリースしました。
LIFF v2.5.0における変更点は以下のとおりです。

機能の変更はありません。

# liff.init()のパフォーマンスの向上

liff.init()を実行してからLIFFアプリの初期化が完了するまでの速度が改善されました。LIFFアプリを開く際の待ち時間が減少するため、より快適なユーザー体験を提供できます。

liff.init()について詳しくは、『LIFF APIリファレンス』の「liff.init()」を参照してください。

# セキュリティの強化を実施しました

未知の攻撃に対する予防策として、セキュリティ強化を実施しました。

アップデートの必要性について

軽微なセキュリティ強化のため、アップデートは必須ではありません。

2020/10/19

【復旧済み】LINEログインおよびLIFF障害のお知らせ

LINEログインおよびLIFFにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。 お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

2020/10/17 11:17頃 〜 11:22頃 JST(GMT+9)

# 原因

サーバー障害

# 影響範囲

  • LINEログイン全般
  • LIFF全般
  • Social API(v2.0、v2.1)

# 状況

リクエストの一部で、ステータスコード500番台のエラーレスポンスが発生していました。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。 何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2020/10/16

【復旧済み】LINEログインおよびLIFF障害のお知らせ

LINEログインおよびLIFFにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。 お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

2020/10/15 18:34頃 〜 18:42頃 JST(GMT+9)

# 原因

サーバー障害

# 影響範囲

  • LINEログイン全般
  • LIFF全般
  • Social API(v2.0、v2.1)

# 状況

リクエストの一部で、ステータスコード500番台のエラーレスポンスが発生していました。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。 何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2020/09/28

LIFF v2.3.3をリリースしました

LIFF v2.3.3をリリースしました。
LIFF v2.3.3では以下の不具合を修正しています。

機能の変更はありません。

# エンドポイントURLの末尾が/の場合に意図しないURLへリダイレクトされる不具合を修正しました

以下の条件の時、LIFF URLにアクセスするとパス区切りが二重(//)になり、意図しないURLへリダイレクトされる不具合がありました。

  • エンドポイントURL]に指定したURL中にパスが含まれており、かつ末尾が/になっている(例:https://example.com/campaign/
  • LIFF URLの追加情報の処理方法]が[連結]に設定されている
  • LIFF URLにパス(/path)が含まれている(例:https://liff.line.me/{liffId}/path

LIFF v2.3.3では、上記の条件の場合でも正しいURLへリダイレクトされるように不具合を修正しています。

項目 LIFF URL 1次リダイレクト先 2次リダイレクト先
変更前 https://liff.line.me/{liffId}/path https://example.com/campaign/?liff.state={urlEncode(/path)} https://example.com/campaign//path
変更後 https://liff.line.me/{liffId}/path https://example.com/campaign?liff.state={urlEncode(path)} https://example.com/campaign/path
他のバージョンへの影響
  • LIFF v2.3.xをお使いの場合は、本パッチバージョンへのアップデートをお勧めします。
  • この不具合はLIFF v2.4.1では、すでに修正されています。

LIFF URLへのアクセス時の動作について詳しくは、LIFFドキュメントの「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。

2020/09/24

LIFF v2.4.1をリリースしました

LIFF v2.4.1をリリースしました。
LIFF v2.4.1における変更点は以下のとおりです。

# LIFFアプリを閉じずに別のLIFFアプリを開く機能の不具合を修正しました

2020年8月31日にお知らせした、LIFFアプリを閉じずに別のLIFFアプリを開く機能に不具合があり、条件を満たしていても正しく動作しないことがわかりました。

LIFF v2.4.1では、動作条件を下記に変更したうえで、不具合を修正しています。

項目 変更前 変更後
LIFF SDK 2.4.0 2.4.1
LINE 10.16.0 10.18.0
LIFF v2.4.0の利用は非推奨です

上記の不具合があるため、LIFF v2.4.0の利用は非推奨になります。 LIFF v2.4.0をお使いの場合は、v2.4.1へのアップデートをお勧めします。

詳しくは、『LIFFドキュメント』の「LIFFアプリから別のLIFFアプリを開いた場合の動作について」を参照してください。

# liff.isApiAvailable()でLIFF間遷移可能な状態か確認できるようになりました

APIの使用可否を確認するliff.isApiAvailable()で、LIFF間遷移可否の確認ができるようになりました。

別のLIFFアプリを開く前に、liff.isApiAvailable('multipleLiffTransition')を実行することで、LIFF間遷移が可能な状態か確認することができます。 別のLIFFアプリを開く際に、エラーが発生することを避けることができます。

if (liff.isApiAvailable('multipleLiffTransition')) {
  window.location.href = "https://line.me/{liffId}", // URL for another LIFF app
}
liff.getContext()を使ってLIFF間遷移の情報を取得する

LIFFアプリの情報を取得するliff.getContext()を使って、LIFF間遷移の可否や、実行可能なLINEバージョンを取得することもできるようになりました。

  • availability.multipleLiffTransition.permission:別のLIFFアプリへの遷移が可能かどうかを表します。
  • availability.multipleLiffTransition.minVer:別のLIFFアプリへの遷移が可能なLINEの最小バージョンを表します。

以下は、liff.getContext()を実行した際の戻り値の例です。

{
    "type": "utou",
    "utouId": "UU29e6eb36812f484fd275d41b5af4e760926c516d8c9faa35…b1e8de8fbb6ecb263ee8724e48118565e3368d39778fe648d",
    "userId": "U70e153189a29f1188b045366285346bc",
    "viewType": "full",
    "accessTokenHash": "ArIXhlwQMAZyW7SDHm7L2g",
    "availability": {
        "shareTargetPicker": {
            "permission": true,
            "minVer": "10.3.0"
        },
        "multipleLiffTransition": {
            "permission": true,
            "minVer": "10.18.0"
        }
    }
}

詳しくは、『LIFF APIリファレンス』の「liff.isApiAvailable()」および「liff.getContext()」を参照してください。

# liff.init()が二回呼びだされた際の動作を修正しました

liff.init()によるLIFFアプリの初期化が成功する条件下においてliff.init()を2回以上実行すると、rejectされたPromiseオブジェクトがエラーメッセージと共に返却されていました。

LIFF v2.4.1では、liff.init()が成功する条件下においてliff.init()を2回以上実行すると、resolveされたPromiseオブジェクトが返却され、警告メッセージが出力されるよう修正されました。

LIFFアプリの初期化について詳しくは『LIFFドキュメント』の「LIFFアプリを初期化する」を参照してください。

2020/09/14

LIFF v2.1.14、v2.2.1、v2.3.2をリリースしました

LIFF v2.1.14、v2.2.1、v2.3.2をリリースしました。変更点は以下のとおりです。

機能の変更はありません。

# LIFFエンドポイントURLに含まれるURLフラグメントがliff.permanentLink.createUrl()で正しく処理されない不具合を修正しました


対象バージョン

  • LIFF v2.3.2

変更点

LIFFのエンドポイントURLにURLフラグメント(#URL-fragment)が含まれていた場合、liff.permanentLink.createUrl()を実行した際、[LIFF URLの追加情報の処理方法]が「置換(後方互換性モード)」に設定されいてるにも関わらずパーマネントリンクにURLフラグメントが含まれる不具合がありました。

問題が発生する条件
  • LIFFのエンドポイントURLにURLフラグメントが含まれている
  • LIFF URLの追加情報の処理方法]が「置換(後方互換性モード)」に設定されいてる

たとえば、[エンドポイントURL]がhttps://example.com/path#sectionに設定されていて、liff.permanentLink.createUrl()を実行するとhttps://liff.line.me/{liffId}/path?liff.state=#sectionがパーマネントリンクとして返されていました。LIFF v2.3.2では、https://liff.line.me/{liffId}が正しく返されるよう修正されています。

# LIFFエンドポイントURLに含まれるクエリパラメータがliff.permanentLink.createUrl()で正しく処理されない不具合を修正しました


対象バージョン

  • LIFF v2.3.2

変更点

LIFFのエンドポイントURLにクエリパラメータ(?key=value)が含まれていて、同じクエリパラメータが含まれるLIFF URLでliff.permanentLink.createUrl()を実行するとクエリパラメータ部分が無限増殖したパーマネントリンクが返される不具合がありました。

問題が発生する条件
  • LIFFのエンドポイントURLに含まれるクエリパラメータとliff.permanentLink.createUrl()を実行する際のLIFF URLのクエリパラメータが一致する
  • LIFF URLの追加情報の処理方法]が「連結」に設定されいてる

たとえば、[エンドポイントURL]がhttps://example.com/path1/?q1=v1&q2=v2に設定されていて、https://liff.line.me/{liffid}/?q1=v1&q2=v2liff.permanentLink.createUrl()を実行すると、https://liff.line.me/{liffid}/?q1=v1&q1=v1&q2=v2&q2=v2のようにクエリパラメータ部分が無限増殖したパーマネントリンクが返されていました。

LIFF v2.3.2では、https://liff.line.me/{liffid}/?q1=v1&q2=v2が正しく返されるよう修正されています。

# LIFFエンドポイントURLに含まれるパスがliff.permanentLink.createUrl()で正しく処理されない不具合を修正しました


対象バージョン

  • LIFF v2.3.2

変更点

LIFFのエンドポイントURLにパスが含まれていて、パスの末尾にスラッシュ(/)が使用されていた場合、liff.permanentLink.createUrl()を実行して取得したパーマネントリンクをクリックすると以下のようにパスの末尾のスラッシュ(/)がリダイレクト先に含まれない不具合がありました。

問題が発生する条件
  • LIFFのエンドポイントURLにパス(/path/)が含まれていて、パスの末尾にスラッシュ(/)が使用されている
  • LIFFのエンドポイントURLにクエリパラメータ(?key=value)やURLフラグメント(#URL-fragment)が含まれている
  • LIFF URLの追加情報の処理方法]が「連結」に設定されいてる

たとえば、[エンドポイントURL]がhttps://example.com/path/?id=xxxxxxxに設定されていて、liff.permanentLink.createUrl()を実行して取得したパーマネントリンクにアクセスするとパスの末尾のスラッシュ(/)がリダイレクト先に含まれず、https://example.com/path?id=xxxxxxxに遷移されていました。

LIFF v2.3.2では、https://example.com/path/?id=xxxxxxxへ正しく遷移されるよう修正されています。

LIFF v2.4.0は修正済みです

2020年8月31日にお知らせしたとおり、この不具合の修正はLIFF v2.4.0にすでに反映されています。

# 2次リダイレクト先URLにフラグメントが含まれない不具合を修正しました


対象バージョン

  • LIFF v2.3.2

変更点

LIFFのエンドポイントURLやLIFF URLにURLフラグメントが含まれていた場合、[LIFF URLの追加情報の処理方法]の設定に関わらず、2次リダイレクト先URLにフラグメントが含まれない不具合を修正しました。

2次リダイレクト先URLや[LIFF URLの追加情報の処理方法]の設定による2次リダイレクト先URLへの影響について詳しくは、LIFFドキュメントの「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。

# LIFF URLが意図しないURLへリダイレクトされる不具合を修正しました


対象バージョン

  • LIFF v2.1.14
  • LIFF v2.2.1
  • LIFF v2.3.2

変更点

LIFF URLに指定した追加情報(例:path/?key=value)は、1次リダイレクト先URLではliff.stateクエリパラメータに含まれます。liff.stateクエリパラメータに追加情報が含まれる場合に、以下のように意図しない2次リダイレクト先URLに遷移する不具合がありました。

問題が発生する条件
  • liff.stateクエリパラメータの先頭に/がない
  • LIFF URLの追加情報の処理方法]が「置換(後方互換性モード)」に設定されいてる

たとえば、[エンドポイントURL]がhttps://example.comに設定されており、liff.stateクエリパラメータがpathだった場合、ドメイン名とパスが/で分離されず、https://example.compathにリダイレクトされていました。
LIFF v2.1.14、v2.2.1、v2.3.2では、https://example.com/pathに正しくリダイレクトされるよう修正されています。

意図しないリダイレクトによる脆弱性について

この不具合を利用することで、悪意あるサイトへ誘導される危険があります。v2.4.0より前のLIFF SDKをお使いの場合はアップデートをおすすめします。

LIFF URLへのアクセス時の動作について詳しくは、LIFFドキュメントの「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。

2020/08/31

【更新】LIFF v2.4.0をリリースしました

2020年9月24日追記

LIFF v2.4.0の利用は、LIFFアプリを閉じずに別のLIFFアプリを開く機能に、不具合が発見されたため非推奨になりました。
この機能を利用するための条件が以下に変わりました。

項目 変更前 変更後
LIFF SDK 2.4.0 2.4.1
LINE 10.16.0 10.18.0

すでにLIFF v2.4.0をお使いの場合は、LIFF v2.4.1へのアップデートをお勧めします。

LIFF v2.4.0をリリースしました。
LIFF v2.4.0における変更点は以下のとおりです。

# LIFFアプリの初期化前でもliff.closeWindow()メソッドが実行できるようになりました

liff.init()メソッドでLIFFアプリを初期化する前に、liff.closeWindow()メソッドを実行できるようになりました。

LIFFアプリ初期化前にliff.closeWindow()メソッドを実行できる条件

LIFF SDKバージョンが2.4.0以上、ユーザーのLINEバージョンが10.15.0以上の場合のみ、LIFFアプリ初期化前にliff.closeWindow()を実行できます。

以下のように、ネットワークエラーや、ユーザーのLINEバージョンなどによってLIFFアプリの初期化に失敗した場合に、liff.closeWindow()メソッドでLIFFアプリを閉じることができます。

liff
  .init({
    liffId: "123456-abcedfg" // Use own liffId
  })
  .then(() => {
    // Start to use liff's api
  })
  .catch((err) => {
    // Error happens during initialization
    console.log(err.code, err.message);
    liff.closeWindow();
  });

詳しくは、『LIFF APIリファレンス』の「liff.closeWindow()」を参照してください。

# LIFFアプリを閉じずに別のLIFFアプリを開くことができるようになりました

画面サイズがFull表示のLIFFアプリ内で、別のLIFFアプリへのリンクをクリックすると、LIFFブラウザを開いたまま別のアプリを表示することができます。
ブラウザが閉じないため、LIFFブラウザの戻るボタンで遷移元のLIFFアプリに戻ることができます。

LIFFアプリを閉じずに別のLIFFアプリに遷移できる条件(2020年9月24日追記)

LIFF v2.4.0では不具合があり、正しく動作しないことがわかりました。この機能の動作条件は以下に変更されています。

  • LIFF SDKバージョンが2.4.1以上、ユーザーのLINEバージョンが10.18.0以上
  • 遷移元のLIFFアプリの画面サイズがFull表示に設定されている
  • 遷移先のLIFFアプリがliff.init()で正しく初期化されている

LIFF-apps-transition

詳しくは、『LIFFドキュメント』の「LIFFアプリから別のLIFFアプリを開いた場合の動作について」を参照してください。

# LIFF URLが意図しないURLへリダイレクトされる不具合を修正しました

LIFF URLに指定した追加情報(例:path/?key=value)は、1次リダイレクト先URLではliff.stateクエリパラメータに含まれます。liff.stateクエリパラメータに追加情報が含まれる場合に、以下のように意図しない2次リダイレクト先URLに遷移する不具合がありました。

問題が発生する条件
  • liff.stateクエリパラメータの先頭に/がない
  • LIFF URLの追加情報の処理方法]が「置換(後方互換性モード)」に設定されいてる

たとえば、[エンドポイントURL]がhttps://example.comに設定されており、liff.stateクエリパラメータがpathだった場合、ドメイン名とパスが/で分離されず、https://example.compathにリダイレクトされていました。
LIFF v2.4.0では、https://example.com/pathに正しくリダイレクトされるよう修正されています。

LIFF URLへのアクセス時の動作について詳しくは、LIFFドキュメントの「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。

# liff.permanentLink.createUrl()の不具合を修正しました

LIFFのエンドポイントURLにクエリパラメータ(?key=value)やURLフラグメント(#URL-fragment)などが含まれていた場合、liff.permanentLink.createUrl()を実行した際、場合により追加情報部分がパーマネントリンクに正しく反映されない不具合を修正しました。

# 2次リダイレクト先URLにフラグメントが含まれない不具合を修正しました

LIFFのエンドポイントURLやLIFF URLにURLフラグメントが含まれていた場合、[LIFF URLの追加情報の処理方法]の設定に関わらず、2次リダイレクト先URLにフラグメントが含まれない不具合を修正しました。

2次リダイレクト先URLや[LIFF URLの追加情報の処理方法]の設定による2次リダイレクト先URLへの影響について詳しくは、LIFFドキュメントの「LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について」を参照してください。

2020/07/16

LIFF v2.3.1をリリースしました

LIFF v2.3.1をリリースしました。 LIFF v2.3.1における変更点は以下のとおりです。

機能の変更はありません。

# LIFF SDKのnpmパッケージのドキュメントの不具合を修正しました

試験的に公開していたLIFF SDKのnpmパッケージに関するnpm公式サイト上のドキュメント (opens new window)の不具合を修正しました。

# LIFF SDKのnpmパッケージの利用手順を移動しました

LIFF SDKのnpmパッケージのインストールおよびLIFFアプリへの組み込みの手順をnpm公式サイト (opens new window)からLINE Developersサイトに移動しました。 詳しくは、「LIFFアプリを開発する」の「npmパッケージを利用する」を参照してください。

2020/07/15

LIFFのヘッダーに機能を追加しました

2020年7月6日にお知らせしたとおり、LIFFのヘッダーに機能を追加しました。

LIFF header design to be improved

# LIFFアプリのアイコンが非表示になりました

LIFFアプリの左上に表示されていたアイコンが非表示になりました。

# シェアボタンが表示されるようになりました

画面サイズFullに設定しているLIFFアプリでは、ヘッダーにシェアボタンが表示されるようになりました。 ユーザーがシェアボタンをタップすると、以下のオプションが表示されます。

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

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

動作環境

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

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2020/07/13

【復旧済み】LINE Front-end Framework障害のお知らせ

LINE Front-end Frameworkにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 発生日時

2020/7/13 11:44 ~ 17:26 JST (GMT+9)

# 原因

サーバー障害

# 状況

上記の時間帯において、弊社サーバーに障害が発生し、LIFFアプリの新規作成時にエラーが表示されていました。エラーが表示されていましたが、LIFFアプリは作成されていました。 すでに復旧対応は完了しています。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2020/07/06

LIFFのヘッダーに機能が追加されます

2020年7月中旬以降に、LIFFのヘッダーの仕様変更を予定しています。

LIFF header design to be improved

# LIFFアプリのアイコンが非表示になります

LIFFアプリの左上に表示されていたアイコンが非表示になります。

# シェアボタンが表示されます

LIFFアプリの画面サイズFullに設定しているLIFFアプリでは、ヘッダーにシェアボタンが表示されます。 ユーザーがシェアボタンをタップすると、以下のオプションが表示されます。

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

なお、LINE DevelopersコンソールでLIFFアプリの設定を変更すると、シェアボタンを非表示にできます。 この設定項目は、今後追加される予定です。

動作環境

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

# 仕様変更予定日時

2020年7月中旬以降

なおこの仕様変更の内容および日時は、予告なく変更される可能性があります。 LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2020/07/01

LIFF SDKをnpmパッケージとして公開しました

これまで、LIFFアプリにLIFF SDKを組み込むには、CDNパスを指定する必要がありました。

本日、LIFF SDKのnpmパッケージを試験的に公開しました。 今後は、npmおよびYarnを利用して、LIFF SDKをインストールできます。

LIFF SDKのnpmパッケージについて詳しくは、https://www.npmjs.com/package/@line/liff (opens new window)を参照してください。

また、npmパッケージとして利用できるLIFF SDKのバージョンはv2.3.0以降です。今後のLIFF SDKのバージョンアップの内容については、『LIFFドキュメント』の「リリースノート」でお知らせします。

注意

npmパッケージは、試験的に公開しています。今後、予告なく変更、または削除される可能性があります。

2020/07/01

LINEのAPIがTLS 1.3に対応しました

2020年7月30日追記

日本国外から対象APIにアクセスする場合については、2020年8月4日以降、TLS 1.3を利用できるようになる予定です。 詳しくは2020年7月30日のニュース、「LINEのAPIがHTTP/2に対応します」を参照してください。

LINEのAPIが、新たにTLS 1.3に対応しました。

# 対象APIのドメイン名

  • api.line.me
  • api-data.line.me
  • access.line.me

# SSL/TLSの対応プロトコルバージョン

変更前と変更後の差異については、以下の表を参照してください。

プロトコルバージョン 変更前 変更後
TLS 1.3
TLS 1.2
TLS 1.1
TLS 1.0
SSL 3.0
SSL 2.0

# 影響

上記のAPIを利用している場合は、変更後の対応プロトコルバージョンで疎通可能であることをご確認ください。

# 移行期間

  • 日本:2020年7月1日以降、TLS 1.3を利用できます。
  • 日本国外:2020年8月4日以降、TLS 1.3を利用できます。

なお今後、TLS 1.0およびTLS 1.1のサポートは終了予定です。 終了時期は未定です。決まり次第、改めてお知らせいたします。

LINEは今後もお客様への一層のサービス向上に取り組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2020/06/29

LIFF v2.3.0をリリースしました

LIFF v2.3.0をリリースしました。 LIFF v2.3.0における変更点は以下のとおりです。

# LIFFのエンドポイントURLでパスおよびクエリパラメータを利用できるようになりました

以前お知らせしたとおり、LINE Developersコンソールの[エンドポイントURL]に入力したパス(/path)およびクエリパラメータ(?key=value)を、LIFFアプリで利用できるようになりました。

設定を変更するまでは既存のLIFFアプリへの影響はありません

既存のLIFFアプリで新仕様を利用する場合は、LINE Developersコンソールで設定を変更する必要があります。設定を変更するまでは、仕様変更の影響を受けません。

LIFF URLの追加情報の処理方法

新仕様を利用するには、LIFFアプリの[LIFF URLの追加情報の処理方法]を「連結」に設定します。
LIFFアプリが新仕様に対応していない場合は、設定を変更しないでください。「置換(後方互換性モード)」に設定されている場合は、仕様変更の影響を受けません。

詳しくは、『LIFFドキュメント』の「LIFFアプリを開く」を参照してください。

liff.permanentLink.createUrl()メソッドを実行したとき、現在のページのURLが[エンドポイントURL]に指定したURLで始まらない場合に、例外が発生します。

try {
    const myLink = liff.permanentLink.createUrl()
}
catch (err) {
    console.log(err.code + ':' + err.message);
}

特に[LIFF URLの追加情報の処理方法]が「置換(後方互換性モード)」のときは、[エンドポイントURL]に指定したパスやクエリパラメータ(/2020campaign/?key=value)が、2次リダイレクト先に含まれないことがあります。 その場合、liff.permanentLink.createUrl()メソッドが上記の条件を満たすため、パーマネントリンクを取得できません。

詳しくは、『LIFF v2 APIリファレンス』の「liff.permanentLink.createUrl()」を参照してください。

# liff.shareTargetPicker()の送信結果を取得できるようになりました

2020年4月21日にお知らせしたとおり、liff.shareTargetPicker()の送信結果を取得できるようになりました。

仕様変更前は、ターゲットピッカーを表示できたかどうかをLIFFアプリが確認できましたが、その後、メッセージを送信できたかどうかは確認できませんでした。

仕様変更後は、メッセージを送信できたかどうかを確認できるため、ユーザーの状況に合わせて、LIFFアプリの挙動を変更するように実装できます。

注意
  • この仕様変更により、liff.shareTargetPicker()の戻り値に変更があります。
  • ユーザーがLINE 10.3.0~LINE 10.10.0を使用している場合は、この仕様変更の影響を受けません。

# 仕様変更に対応するサンプルコード

以下のように、ユーザーが使用しているLINEバージョンによって戻り値を処理することをお勧めします。

if (liff.isApiAvailable('shareTargetPicker')) {
  liff.shareTargetPicker([
    {
      'type': 'text',
      'text': 'Hello, World!'
    }
  ])
    .then(function (res) {
      if (res) {
        // succeeded in sending a message through TargetPicker
        console.log(`[${res.status}] Message sent!`)
      } else {
        const [majorVer, minorVer] = (liff.getLineVersion() || "").split('.');
        if (parseInt(majorVer) == 10 && parseInt(minorVer) < 11) {
          // LINE 10.3.0 - 10.10.0
          // Old LINE will access here regardless of user's action
          console.log('TargetPicker was opened at least. Whether succeeded to send message is unclear')
        } else {
          // LINE 10.11.0 -
          // sending message canceled
          console.log('TargetPicker was closed!')
        }
      }
    }).catch(function (error) {
      // something went wrong before sending a message
      console.log('something wrong happen')
    })
}

詳しくは、『LIFF v2 APIリファレンス』の「liff.shareTargetPicker()」を参照してください。

# liff.sendMessages()で返されるエラーコードを追加しました

liff.sendMessages()に不正なパラメータを渡した場合、LiffErrorのエラーコードで400が返されていました。仕様変更後は、400の代わりにINVALID_ARGUMENTが返されます。

なお、エラーコードによって処理を分岐していない場合は、仕様変更の影響を受けません。

仕様変更前:

liff.sendMessages([
  {
    type: 'text',
    text: 'Hello, World!'
  }
])
  .then(() => {
    console.log('message sent');
  })
  .catch((err) => {
    // Returns "400" if invalid arguments are passed
    if (err.code === "400") {
      console.log("message format error!");
    }
  });

仕様変更後:

liff.sendMessages([
  {
    type: 'text',
    text: 'Hello, World!'
  }
])
  .then(() => {
    console.log('message sent');
  })
  .catch((err) => {
    // Returns "INVALID_ARGUMENT" if invalid arguments are passed
    if (err.code === "INVALID_ARGUMENT") {
      console.log("message format error!");
    }
  });

詳しくは、『LIFF v2 APIリファレンス』の「エラー内容」を参照してください。

2020/06/15

LIFF v2.2.0リリース:LiffErrorのコードを追加しました

以下のメソッドでPromiseがrejectされたときに渡されるLiffErrorのコードがより詳細になり、問題の原因がわかりやすくなりました。

詳しくは、以下のメソッドの「エラーレスポンス」を参照してください。


2020/05/21

【更新】パーマネントリンクを取得するAPIのドキュメントを公開します

2020年7月15日追記

APIのメソッド名に誤記があったため、修正いたしました。 お詫びして訂正いたします。

【誤】 liff.permanentLink.setExtraQueryParams()

【正】 liff.permanentLink.setExtraQueryParam()

LIFF SDKは、現在のページのパーマネントリンクを保持しています。 このパーマネントリンクを扱うAPIのドキュメントを公開します。

  • liff.permanentLink.createUrl()
  • liff.permanentLink.setExtraQueryParam()

これらのAPIは、最新のLIFF SDKにすでに含まれており、LIFF SDKのバージョンは変更されません。

パーマネントリンクの取得方法について詳しくは、『LIFFドキュメント』の「現在のページのパーマネントリンクを取得する」を参照してください。

2020/05/20

【更新】まもなくLIFFのエンドポイントURLでパスが使用できるようになります

2020年5月29日追記

この仕様変更は、2020年5月の最終週に行われる予定でしたが、既存のLIFFアプリへの影響を考慮し、以下のように対応を変更します。

  • 2020年5月20日にお知らせしたとおり、エンドポイントURLでパスが使用できるようになる機能を追加します。
  • 既存のLIFFアプリには影響が出ない形で仕様変更を行う予定です。
  • 仕様変更は、2020年6月後半を予定しています。

たび重なる仕様変更により混乱を招いたことを、改めてお詫び申し上げます。

現在、開発者はLINE DevelopersコンソールのLIFFタブのURLに、パス(/path)、クエリパラメータ(?key=value)、URLフラグメント(#URL-fragment)を入力できますが、実際はドメイン名とクエリパラメータの部分のみが使用されています。

今後、LIFFのエンドポイントURLがアップデートされ、以下の改善が行われる予定です。

  • パス(/path)が使用できるようになります。
  • URLフラグメント(#URL-fragment)は入力できなくなります。

たとえば、HerokuにLIFFアプリをデプロイする場合は、LINE Developersコンソールの基本情報セクションのエンドポイントURLhttps://{Herokuアプリ名}.herokuapp.com/path/?key=valueと入力します。

LINE Developersコンソールでパスを追加したエンドポイントURLの例

URLスキームは、必ずhttpsを使用してください。

LINE Developersコンソールに入力したパスが使用できるため、新規ページの公開が容易になります。たとえば、キャンペーン用のページを公開する場合、LIFFアプリのドメイン(例:https://example.com)に、キャンペーン用のパス(例:/2020campaign)を追加したhttps://example.com/2020campaignを直接エンドポイントURLに登録できます。

注意

LINE Developersコンソールで登録するエンドポイントURLと、LIFFアプリを開くためのURLスキームで、URLフラグメントの使用可否が異なります。混同しないようにご注意ください。

エンドポイントURL
https://example.com/2020campaignまたはhttps://example.com/2020campaign/?key=value
URLフラグメントは追加できません。

LIFFアプリを開くためのURLスキーム
https://liff.line.me/{liffId}/path_A/path_B/#URL-fragment
URLフラグメントを追加できます。

詳しくは、『LIFFドキュメント』の「LIFFアプリをチャネルに追加する」を参照してください。

たび重なる仕様変更により混乱を招いたことをお詫び申し上げます。今後も開発者の皆様に提供するサービスの品質向上に努めてまいりますので、何卒ご理解いただきますようお願い申し上げます。

# 仕様変更予定日時

2020年6月後半

2020/05/19

LIFFアプリでOGPタグを利用できるようになりました

LIFFアプリの各ページにOGPタグを設定すると、たとえばLINEのトークルームでLIFFアプリのURL(https://liff.line.me/{liffId})をシェアしたときに、任意のタイトルや説明文、サムネイル画像を表示できるようになりました。

LIFFで対応しているOGPタグは以下のとおりです。 OGPタグについて詳しくは、「The Open Graph protocol (opens new window)」を参照してください。

<html lang="ja" prefix="og: http://ogp.me/ns#">
<meta property="og:title" content="タイトル">
<meta property="og:type" content="`website`、`blog`、または`article`">
<meta property="og:description" content="ページの簡単な説明">
<meta property="og:url" content="ページのURL">
<meta property="og:site_name" content="サイト全体を表す名前">
<meta property="og:image" content="サムネイル画像のURL">
注意

LIFFアプリのURLを、line://app/{liffId}(非推奨)の形式でシェアしたときは、OGPタグは無視されます。

2020/05/08

LIFFのバージョニングポリシーおよびライフサイクルを公開しました

LIFFの各バージョンの目的を明確にするために、LIFFのバージョニングポリシーを公開しました。 あわせて、開発者の方々がLIFFのバージョンアップに対して適切な準備を行えるようにするために、メジャーバージョンごとのライフサイクルも公開しました。

最新バージョンのLIFF SDKを使用してください

2019年10月16日にお知らせしたとおり、LIFF v1は廃止される予定です。 廃止後は、LIFF v1を組み込んだLIFFアプリは開けません。

メジャーバージョンのライフサイクルおよびLIFF v1が廃止される日程について詳しくは、LIFFドキュメントの「LIFF SDKのライフサイクル」を参照してください。

# LIFFのバージョニングポリシー

LIFF v2.2.0以降、LIFFのバージョンナンバーは、セマンティック バージョニング (opens new window)(SemVer)で定められたルールに従います。

SemVerでは、以下のバージョン形式を定義しています。

メジャー.マイナー.パッチ

たとえば、v1.2.3の場合、1はメジャーバージョン、2はマイナーバージョン、3はパッチバージョンを表します。

LIFFの新しいバージョニングポリシーでは、LIFFのメジャーバージョンのライフサイクルや、各バージョン(メジャー、マイナー、パッチ)の目的も説明しています。

# LIFF SDK(sdk.js)のアップデートポリシー

LINEでは、LIFF v2.1.13リリース以降、以下の2種類のCDNパスを用意しています。LIFFアプリにLIFF SDKを組み込むときに、目的に合ったCDNパスを指定してください。

CDNパス 説明
CDNエッジパス メジャーバージョンのみを指定する方法です。LIFFアプリを更新せずに、LIFF SDKの新バージョンを使用し続けることができます。
例:https://static.line-scdn.net/liff/edge/2/sdk.js
CDN固定パス パッチバージョンまで指定する方法です。LIFFアプリを更新しない限り、指定したパッチバージョンを使い続けることができます。自動的に更新されないため、LIFF SDKのアップデートの影響を受けません。
例:https://static.line-scdn.net/liff/edge/versions/2.1.13/sdk.js

CDNエッジパスを指定する例:

<script charset="utf-8" src="https://static.line-scdn.net/liff/edge/2/sdk.js"></script>
後方互換性を維持するためのCDNパスについて

作成済みのLIFFアプリの動作を保証するために、以下のCDNパスでLIFF SDKの提供を継続します。 このCDNパスで利用できるLIFF SDKは、CDNエッジパスで利用できるLIFF SDKと同じバージョンです。

後方互換性を維持するためのCDNパス:
https://static.line-scdn.net/liff/edge/2.1/sdk.js

注意

後方互換性を維持するためのCDNパスは、LIFF SDKのライフサイクルスケジュールに関わらず廃止される可能性があります。 LIFFアプリで指定するCDNパスを、CDNエッジパスに変更することをおすすめします。

方針が決まり次第改めてお知らせします。

詳しくは、『LIFFドキュメント』の「バージョニングポリシー」を参照してください。

2020/04/30

LIFF v2にliff.getLineVersion()およびliff.idが追加されました

LIFF v2に、liff.getLineVersion()メソッドおよびliff.idプロパティが追加されました。

liff.getLineVersion()を使用すると、ユーザーのLINEバージョンを取得できます。

ユーザーがLIFFブラウザでLIFFアプリを開くと、ユーザーのLINEバージョンが文字列で返されます。 ユーザーが外部ブラウザでLIFFアプリを開くと、 nullが返されます。

liff.idは、 liff.init()に渡したLIFFアプリID(String型)を保持するプロパティです。

詳しくは、『LIFF v2 APIリファレンス』の「liff.getLineVersion()」および「liff.id」を参照してください。

2020/04/21

liff.shareTargetPicker()の戻り値に関するお知らせ

今後、LIFF v2のliff.shareTargetPicker()の戻り値を変更する予定があります。 現在の仕様のみを想定しているアプリの開発者の方は、実装の変更をお願いします。

注意

現時点では、変更後のliff.shareTargetPicker()の戻り値の仕様は確定していません。

# 概要

仕様変更前は、ターゲットピッカーを表示できたかどうかをLIFFアプリが確認できましたが、その後、メッセージを送信できたかどうかは確認できませんでした。

仕様変更後は、メッセージを送信できたかどうかを確認できるため、ユーザーの状況に合わせて、LIFFアプリの挙動を変更するように実装できます。

# 仕様変更前

# サンプル

if (liff.isApiAvailable('shareTargetPicker')) {
  liff.shareTargetPicker([
    {
      type: "text",
      text: "Hello, World!"
    }
  ])
    .then(
      console.log("ShareTargetPicker was launched")
    ).catch(function(res) {
      console.log("Failed to launch ShareTargetPicker")
    })
}

# 構文

liff.shareTargetPicker(messages)

# 戻り値

Promiseオブジェクトが返されます。

ターゲットピッカーが表示されると、Promiseがresolveされます。

ターゲットピッカーが表示される前に問題が発生した場合は、Promiseがrejectされ、LiffErrorが渡されます。LiffErrorオブジェクトについては、「LIFF SDKのエラー」を参照してください。

注意
  • 表示されたターゲットピッカーでユーザーが送信先を選択しなかった場合など、ターゲットピッカーが表示されたあとの状況は検知できません。
  • Promiseがresolveした場合とrejectした場合のコールバック関数内で、alert()を実行すると一部端末で正しく動作しません。

# 仕様変更後

# サンプル

if (liff.isApiAvailable('shareTargetPicker')) {
  liff.shareTargetPicker([
    {
      type: "text",
      text: "Hello, World!"
    }
  ])
  .then(function(res) {
    if (res) {
      // succeeded to send message in TargetPicker
      console.log(`[${res.status}] Message [${this.msgType}] is sent!`)
    } else {
      // canceled to send message
      console.log('TargetPicker was closed!')
    }
  }).catch(function(error) {
    // something wrong happened before sending message properly
    console.log('something wrong happen')
  })
}

# 構文

liff.shareTargetPicker(messages)

# 戻り値

Promiseオブジェクトが返されます。

正しくメッセージが送信されると、Promiseがresolveされ、成功が渡されます。

メッセージを送信する前に、ユーザーがキャンセルしてターゲットピッカーを閉じると、Promiseがresolveされますが、成功は渡されません。

ターゲットピッカーが表示される前に問題が発生した場合は、Promiseがrejectされ、LiffErrorが渡されます。LiffErrorオブジェクトについては、「LIFF SDKのエラー」を参照してください。

なお、今後の仕様変更に合わせてエラー定義も変更する予定です。

注意

Promiseがresolveした場合とrejectした場合のコールバック関数内で、alert()を実行すると一部端末で正しく動作しません。

# 仕様変更予定日時

未定

2020/04/03

LIFF v2にliff.isApiAvailable()が追加されました

LIFF v2に、liff.isApiAvailable()が追加されました。 指定したAPIが、LIFFアプリを起動した環境で使用可能かどうかを確認できます。

注意

指定できるAPIは限られています。 現時点では、liff.shareTargetPicker()が対象です。 今後、liff.isApiAvailable()で指定できるAPIが増えたときには、改めてお知らせします。

# ターゲットピッカーの使用可否の確認

liff.isApiAvailable()を事前に実行することで、ターゲットピッカーが使用不可能な環境でliff.shareTargetPicker()を実行した際、ユーザーの画面にエラーメッセージが表示されることを避けられます。

if (liff.isApiAvailable('shareTargetPicker')) {
  liff.shareTargetPicker([
    {
      type: "text",
      text: "Hello, World!"
    }
  ])
    .then(
      alert("ShareTargetPicker was launched")
    ).catch(function(res) {
      alert("Failed to launch ShareTargetPicker")
    })
}

詳しくは、『LIFF v2 APIリファレンス』の「liff.isApiAvailable()」を参照してください。

2020/03/03

LIFF v2にliff.shareTargetPicker()およびliff.readyが追加されました

LIFF v2に、liff.shareTargetPicker()およびliff.readyが追加されました。

# liff.shareTargetPicker()

ターゲットピッカー(グループまたは友だちを選択する画面)を表示し、ターゲットピッカーで選択した相手に、開発者が作成したメッセージを送信するメソッドが追加されました。このメッセージは、ユーザーが送信したかのように、グループまたは友だちに表示されます。

target picker

詳しくは、『LIFFドキュメント』の「ユーザーの友だちにメッセージを送信する」を参照してください。

ターゲットピッカーの動作環境について

ターゲットピッカーは、iOS版とAndroid版のLINE 10.3.0以降でサポートされます。

# liff.ready

LIFFアプリ起動後、liff.init()の実行が初めて終了したときにresolveするPromiseオブジェクトを利用できるようになりました。liff.readyを利用すると、liff.init()の終了を待って、任意の処理を実行できます。

詳しくは、『LIFF v2 APIリファレンス』の「liff.ready」を参照してください。

2020/02/07

LIFF v1 廃止対象APIと廃止スケジュール変更のお知らせ

LINE Front-end Framework(LIFF) v1のサーバーAPIを2020年3月31日に廃止する告知をしましたが、影響範囲を考慮し提供を継続します。

LIFF v1全体の廃止時期については、決まり次第改めてお知らせしますが、早めの移行を推奨します。

機能 変更前のスケジュール 変更後のスケジュール
LIFF v1 クライアントAPI 廃止予定 廃止予定(変更ありません)
LIFF v1 サーバーAPI 2020年3月31日廃止 提供を継続
LIFF v1の廃止予定は変わりません

2019年10月16日に告知したとおり、LIFF v1は、廃止される予定です。最新バージョンのLIFFを使用してください。

2020/02/05

Messaging APIのチャネルにはLIFFアプリを追加できなくなりました

2019年11月11日に告知したとおり、LIFF v2の機能拡張に伴いMessaging APIのチャネルにはLIFFアプリを追加できなくなりました。

すでにMessaging APIチャネルに追加したLIFFアプリに関する制限や、LINEログインチャネルへの移行方法に関しては上記のニュース記事をご参照ください。


2020/01/21

2020年3月31日にLIFF v1のサーバーAPIの提供を終了します

2020年3月31日に、LINE Front-end Framework(LIFF) v1のサーバーAPIの提供を終了します。提供終了日に、以下の機能を削除する予定です。

最新バージョンのLIFFを使用してください

2019年10月16日に告知したとおり、LIFF v1は、廃止される予定です。

# LIFF v2を利用してください

提供を終了するサーバーAPIの機能は、すべてLINE Developersコンソールで利用できます。LIFFアプリをチャネルに追加する操作について詳しくは、以下の項目を参照してください。

そのほかの機能も、同様の操作で利用できます。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2020/01/14

提供を一時停止しているLIFF SDKのAPIを使用している場合はコードを修正してください

2019年11月29日に告知したとおり、iOS版のLINE 9.19.0以降では、以下のAPIは、技術的な問題があり提供を一時停止しています。

  • liff.scanCode()
  • liff.bluetooth.*

さらに本日から、iOS版のLINE 9.19.0以降を使用するエンドユーザーがLIFFアプリを利用した場合は、それぞれのAPIは以下のように動作します。

API 動作
liff.scanCode() APIがundefinedになる
liff.bluetooth.* liff.initPlugins(['bluetooth'])を呼び出したときに、Bluetoothプラグインの初期化に失敗し、FORBIDDENエラーが返される

liff.scanCode()を利用する場合は、上記のケースも考慮し、関数の存在を確認することをお勧めします。

修正前:

liff.scanCode().then(result => {
  // result = { value: '' }
});

修正後:

if (liff.scanCode) {
	liff.scanCode().then(result => {
	  // result = { value: '' }
	});
}

詳しくは、『LIFF v2 APIリファレンス』を参照してください。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2019/11/29

LIFFの一部機能の提供の一時停止について

以下の機能は、技術的な問題があり提供を一時停止することになりました。今後の対応が決まり次第、改めてお知らせします。

  • liff.scanCode()
  • liff.bluetooth.*

# 一時停止バージョン

LINE 一時停止バージョン
iOS版LINE 9.19.0以降は、上記の機能の提供を一時停止します
Android版LINE 対応方法を検討しています

ご利用のユーザー様にはご不便をおかけいたしますが、何卒ご理解いただきますようお願い申し上げます。

2019/11/11

Messaging APIのチャネルにはLIFFアプリを追加できなくなります

LIFF v2では、LINEログインを中核とした機能拡張を予定しています。そのため、LINEログインチャネルにLIFFアプリを追加することを推奨します。それに伴い、現在サポートしているMessaging APIチャネルにLIFFアプリを追加できなくなる仕様変更が予定されています。

# 仕様変更時期

2020年2月上旬

# 影響

チャネル種別 影響
LINEログインチャネル 仕様変更の影響を受けません。
Messaging APIチャネル 仕様変更以降は、Messaging APIチャネルにはLIFFアプリを追加できません。仕様変更時点でMessaging APIチャネルに追加済みのLIFFアプリは、引き続き使用できます。
Messaging APIチャネルにLIFFアプリを追加しないでください

現時点では、Messaging APIチャネルにLIFFアプリを追加することもできますが、追加しないでください。Messaging APIチャネルに追加したLIFFアプリには、以下の制限があります。

  • ボットリンク機能は利用できません。
  • LIFFの機能拡張に対応できない可能性があります。
  • LIFFアプリが使用できなくなる可能性があります。

なお、LINEログインチャネルに追加したLIFFアプリには制限がなく、LIFF v2のすべての機能を利用できます。

# LINEログインチャネルへの移行

Messaging APIチャネルに追加したLIFFアプリを継続して使用するには、LINEログインチャネルにLIFFアプリを追加し直してください。

LIFFアプリを追加し直すと、LIFFアプリIDが再発行されるため、以下の点に注意してください。

  • LIFF v2を利用している場合は、liff.init()に指定するLIFFアプリIDを変更してください。
  • LIFFを起動するためのLIFF URL(例:line://app/1234567890-AbcdEfgh)が変更されます。
Messaging APIチャネルに追加したLIFFアプリは削除してください

混乱を避けるために、LIFFアプリをLINEログインチャネルへ追加したあとで、Messaging APIチャネルに追加したLIFFアプリを削除してください。

2019/10/16

LIFF v2がリリースされました

LINE Front-end Framework(LIFF) v2は、LINEが提供するウェブアプリのプラットフォームです。

最新バージョンのLIFFを使用してください

LIFF v1は、廃止される予定です。

# 外部ブラウザでLIFFアプリが動作します

LIFF v1では、LIFFアプリはLIFFブラウザでのみ動作していました。LIFF v2からは、外部ブラウザでも動作します。これにより、一般のウェブアプリと同じ開発環境で、LIFFアプリを開発できるようになりました。

# ユーザーのプロフィール情報とメールアドレスを取得できます

LINEログイン v2.1との互換性が向上したため、ユーザーIDやメールアドレスをLINEプラットフォームから取得できます。LIFFアプリではこれらを利用して、ユーザー情報を活用した機能を提供したり、メールを送信したりできます。

なお、外部ブラウザで動作しているときでも、LINEログインの処理(ウェブログイン)が利用できます。したがって、外部ブラウザで動作しているときも同様の情報を利用できます。

# QRコードを読み取れます

LINEのQRコードリーダーを起動し、ユーザーが読み取った文字列を取得できます。

# LIFFアプリの動作環境を細かく取得できます

LIFFアプリを動作させている環境の情報を細かく取得できます。取得できる情報は以下のとおりです。

  • LIFFアプリが動作しているOS(iOS、Android、外部ブラウザ)
  • LIFFブラウザで起動しているかどうか(true、false)
  • 言語設定

詳しくは、「LINE Front-end Framework」を参照してください。

2019/09/26

システムメンテナンスのお知らせ

下記の日時において、システムメンテナンスを行います。ご利用のユーザー様にはご不便をおかけいたしますが、何卒ご理解いただきますようお願い申し上げます。

# メンテナンス予定日時

2019年9月26日 16:20-16:50 JST(+9 GMT)の間の数秒程度

※開始時間と終了時間は、前後する場合があります。

# 影響

Messaging API、LINEログイン、LIFF起動等の動作が不安定な状態になります。具体的には、以下のような事象が発生する可能性があります。

  • Messaging API(https://api.line.me/v2/bot/*)を呼び出した際、ステータスコード500番のエラーが返る。
  • エンドユーザーがLINEログインを実行した場合やLIFFを起動した場合に、ステータスコード500番のエラーが返る。
2019/04/23

LINE Front-end Frameworkの同意画面が改善されました

LINE Front-end Framework(LIFF)で、ユーザーがLIFFアプリを起動したときに表示される同意画面が改善されました。この改善は、すべてのLIFFアプリに自動的に適用されるため、追加の開発作業は不要です。

新画面(イメージ)

New consent screen

なお、ユーザーに「トークへのメッセージ送信」の認可を求めるLIFFアプリでは、同意画面でユーザーが許可しない場合があります。この場合は、次にユーザーがLIFFアプリを起動したときに同意画面が再表示されます。


2019/02/07

LIFF SDKでアクセストークンを取得できるようになりました

LIFF SDKにliff.getAccessToken()メソッドが追加されました。

アクセストークンを使ってSocial APIにリクエストを送信し、LINEプラットフォームのユーザープロフィールデータにアクセスできます。

詳しくは、「ユーザーのアクセストークンを取得する」を参照してください。


2018/11/16

ドキュメント訂正のお知らせ

本日公開された、LIFFアプリを更新するAPIに関するニュース、およびドキュメントの記載に誤記がありました。お詫びして訂正いたします。

# ニュース

【誤】 LIFFアプリを更新するAPIに対するHTTPリクエストがPUTからPATCHに変更され、プロパティを部分的に変更できるようになりました。

【正】 LIFFアプリを更新するAPIが変更され、プロパティを部分的に変更できるようになりました。

# ドキュメント

【誤】 PATCH https://api.line.me/liff/v1/apps/{liffId}

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

詳しくは、「LIFFアプリを更新する」を参照してください。

2018/11/16

LIFFのサーバーAPIが新しくなりました

LIFFアプリに以下のプロパティを設定できるようになりました。

  • descriptionプロパティ
  • features.bleプロパティ

また、LIFFアプリを更新するAPIに対するHTTPリクエストがPUTからPATCHに変更され、プロパティを部分的に変更できるようになりました。

詳しくは、以下のセクションを参照してください。

2018/10/30

LIFFアプリをLINE Developersコンソールで追加できるようになりました

LIFFアプリをLINE Developersコンソールで追加できるようになりました。今までと同様に、LIFFサーバーAPIでもLIFFアプリを追加できます。

詳しくは、「LIFFアプリを追加する」を参照してください。


2018/07/19

LIFFアプリ数の上限が変更されました

LINE Front-end Frameworkで、1つのチャネルあたり最大30件のLIFFアプリを追加できるようになりました。以前の最大登録数は10件でした。

詳しくは、『LIFF APIリファレンス』の「LIFFアプリを追加する」を参照してください。


2018/06/21

【復旧済み】LINE Front-end Framework障害のお知らせ

LINE Front-end Frameworkにおいて以下の障害が発生しておりましたが、すべて復旧いたしました。お客様には多大なご迷惑をお掛けし、誠に申し訳ございませんでした。

# 復旧日時

2018/06/21 17:30頃 JST(GMT+9)

# 原因

サーバー障害

# 状況

LIFFアプリをチャネルに追加したとき、チャネルにユーザーのメールアドレスを取得する権限があった場合はその権限が取り消されるという問題が発生していました。メールアドレスの取得権限が取り消されていないかLINE Developersコンソールでご確認のうえ、取り消されていた場合は再度ご申請ください。

LINEは今後もお客様への一層のサービス向上に取組んでまいります。何卒ご理解を賜りますよう、よろしくお願い申し上げます。

2018/06/06

LINE Front-end Frameworkがリリースされました

LINE Front-end Framework(LIFF)は、LINE内で動作するウェブアプリのプラットフォームです。

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

詳しくは、「LINE Front-end Framework」を参照してください。