# News: Articles for #LIFF

liff.isApiAvailable() added to LIFF v2

We added the method liff.isApiAvailable() to LIFF v2. This method checks whether a specified API can be used in the environment where the LIFF app was launched.

Note

The number of APIs you can specify is limited. Currently, you can only specify liff.shareTargetPicker(). We'll notify you when more APIs can be checked with liff.isApiAvailable() in the future.

# Check if share target picker is available

By executing liff.isApiAvailable() before you execute liff.shareTargetPicker(), you can avoid the user getting an error message on their screen if the share target picker isn't available in their device environment.

if (liff.isApiAvailable('shareTargetPicker')) {
  liff.shareTargetPicker([
    {
      type: "text",
      text: "Hello, World!"
    }
  ])
    .then(
      alert("ShareTargetPicker was launched")
    ).catch(function(res) {
      alert("Failed to launch ShareTargetPicker")
    })
}

Learn more from liff.isApiAvailable() in the LIFF v2 API reference.

liff.shareTargetPicker() and liff.ready added to LIFF v2

We added liff.shareTargetPicker() and liff.ready to LIFF v2.

# liff.shareTargetPicker()

Execute the liff.shareTargetPicker() method to display the target picker (screen for selecting a group or friend) and send the message created by the developer to the selected target. This message appears to your group or friends as if you had sent it.

target picker

For more information, see Sending messages to a user's friend (share target picker) in the LIFF documentation.

Target picker operating environment

Target picker is supported by LINE 10.3.0 for iOS and Android.

# liff.ready

With liff.ready, you can get the Promise object that resolves when you run liff.init() for the first time after starting the LIFF app. If you use liff.ready, you can execute any process after the completion of liff.init().

For more information, see liff.ready in the LIFF v2 API reference.

Notice about LIFF v1 APIs and discontinuation schedule change

We announced that the end-of-life of LINE Front-end Framework (LIFF) server API was scheduled for March 31, 2020. Due to feedback received, we will continue to provide the API.

As for LIFF v1, we will announce the discontinuation schedule as soon as it is decided. In the meantime, we recommend that you migrate from v1 to v2 as soon as possible.

Feature Schedule before this update Schedule after this update
LIFF v1 Client API Scheduled for discontinuation Scheduled for discontinuation (This has not changed)
LIFF v1 Server API Scheduled for discontinuation on March 31, 2020 Support continues
LIFF v1 will still be discontinued

As announced on October 16, 2019, LIFF v1 will be discontinued. Use the latest version of LIFF.

Users can no longer add LIFF apps to Messaging API channels

As announced on November 11, 2019, due to a function enhancement with LIFF v2, users can no longer add LIFF apps to Messaging API channels.

To find out about restrictions on LIFF apps already added to the Messaging API channel, and how to transition to the LINE Login channel, see the above news article.

LIFF v1 Server API end-of-life on March 31, 2020

March 31, 2020 marks the end-of-life date for LINE Front-end Framework (LIFF) v1 Server API. On that date, these features will be removed:

Use the latest version of LIFF

As announced on October 16, 2019, LIFF v1 will be discontinued.

# Use LIFF v2

All discontinued Server API functions can be used in LINE Developers Console. For more information on how to add a LIFF app to a channel, read this:

You can use other features with the same process.

LINE will continue to improve the quality of its services. Thank you for your understanding.

Update your code that uses the suspended LIFF SDK API

As announced on November 29, 2019, these APIs on LINE v9.19.0 and later for iOS were temporarily suspended due to technical issues.

  • liff.scanCode()
  • liff.bluetooth.*

Starting today, for end users using the LIFF app on LINE v9.19.0 and later for iOS, each API works as follows.

API Function
liff.scanCode() API is undefined
liff.bluetooth.* If the Bluetooth plug-in fails to initialize when calling liff.initPlugins(['bluetooth']), a FORBIDDEN error is returned.

If you use liff.scanCode(), we recommend that you also consider the above case and verify that the function exists.

Before modification:

liff.scanCode().then(result => {
  // result = { value: '' }
});

Modified:

if (liff.scanCode) {
	liff.scanCode().then(result => {
	  // result = { value: '' }
	});
}

For more information, see LIFF v2 API reference.

LINE will continue to improve the quality of its services. Thank you for your understanding.

Some LIFF functions suspended

Due to a technical issue, we've temporarily suspended the following LIFF functions. We'll let you know as soon as this situation changes.

  • liff.scanCode()
  • liff.bluetooth.*

# Impacted environments

Environment Version
LINE for iOS On version 9.19.0 and later, the functions listed above are temporarily unavailable.
LINE for Android Not affected for now, but more news will follow soon.

We apologize for the inconvenience and are working hard to solve the problem.

Users can no longer add LIFF apps to Messaging API channels

LIFF v2 is scheduled to be updated with LINE Login as the core channel. Additionally, an upcoming change will prevent users from adding LIFF apps to Messaging API channels entirely. We strongly recommend users to add LIFF apps to the LINE Login channel.

# Scheduled change date

Early February 2020

# Impact

Channel type Impact
LINE Login channel Not affected.
Messaging API channel After the specification change, LIFF apps cannot be added to the Messaging API channel. LIFF apps added to Messaging API channels at the time of specification change are still usable.
Do not add LIFF apps to the Messaging API channel

At this time, users can add LIFF apps to the Messaging API channel. However, we strongly advise against it due to the following restrictions:

  • The bot link feature can't be used.
  • LIFF feature expansion may not be supported.
  • The LIFF app may not be usable in the future.

LIFF apps added to the LINE Login channel have no restrictions and can use all LIFF v2 functions.

# Transition to the LINE Login channel

To continue using the LIFF app added to the Messaging API channel, re-add the LIFF app to the LINE Login channel. Once re-added, LINE Developers console will issue a new LIFF app ID. As a result, please take note of the following:

  • If you're using LIFF v2, change the LIFF app ID specified in liff.init().
  • The LIFF URL used to launch LIFF(e.g.:line://app/1234567890-AbcdEfgh)will change.
Remove LIFF apps added to Messaging API channel

To avoid confusion, delete the LIFF app added to the Messaging API channel after adding to the LINE Login channel.

LIFF v2 released

LINE Front-end Framework (LIFF) v2 is a platform for web apps provided by LINE.

Use the latest version of LIFF

LIFF v1 will be deprecated.

# LIFF apps now run in external browsers

With LIFF v1, LIFF apps ran only in LINE's in-app browser. With LIFF v2, LIFF apps can also run in external browsers. This means you can develop LIFF apps using the same development environment as general web applications.

# Get user profile and email

Because compatibility with LINE Login v2.1 has improved, you can retrieve a user's ID and email address from the LINE platform. Your LIFF app can use this data to provide features related to user information and sending emails.

Furthermore, you can use LINE Login (web login flow) even when your LIFF app is running in an external browser. This means you can use the same information even when the LIFF app is running in an external browser.

# Read QR codes

You can start LINE's QR code reader and get the strings read by the user.

# Get LIFF app environment information

You can get the following details about the environment in which your LIFF app is running:

  • Operating system in which the LIFF app is running (iOS, Android, external browser)
  • Whether the LIFF app is running in the in-app browser (true, false)
  • Language settings

For more information, see LINE Front-end Framework.

Notice about system maintenance

We're performing system maintenance at the below time. We apologize for any inconvenience.

# Scheduled maintenance time

September 26, 2019 16:20-16:50 JST (+9 GMT)

The maintenance will only last a few seconds and will take place somewhere in this time window.

# Impact

Messaging API, LINE Login, and LIFF operations may result in errors. Specifically, the following events can occur:

  • Messaging API (https://api.line.me/v2/bot/*) returns an error with status code 500.
  • An error with status code 500 is returned when a user logs in with LINE Login or starts a LIFF app.

Improved consent screen in LINE Front-end Framework

We have improved the consent screen bundled with the LINE Front-end Framework (LIFF). The improvement is automatically applied to all LIFF apps. There's no need for additional development work.

New consent screen

As before this update, the user can choose to not allow the LIFF app to send messages to chats. But if they do so, unlike before, the consent screen will reappear the next time the user launches the LIFF app.

You can get access tokens through LIFF SDK

We added the liff.getAccessToken() method to the LIFF SDK.

Use the access token to interact with the Social API to access user profile data on the LINE Platform.

For more information, see Getting the user's access token.

Correction to documentation

There were errors in the news release and documentation for the new LIFF server API to update a LIFF app. We apologize for any inconvenience.

# News

【Incorrect】 The HTTP request to the API endpoint to update a LIFF app is changed from PUT to PATCH. Now you can partially update the properties of your LIFF apps.

【Correct】 The API endpoint for updating a LIFF app is changed. Now you can partially update the properties of your LIFF apps.

# API reference

【Incorrect】 PATCH https://api.line.me/liff/v1/apps/{liffId}

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

For more information, see Update LIFF app.

Renewed LIFF server API

Now you can set the following properties to your LIFF apps.

  • description property
  • features.ble property

The HTTP request to the API endpoint to update a LIFF app is changed from PUT to PATCH. Now you can partially update the properties of your LIFF apps.

For more information, see the following sections:

LIFF apps can now be added with the LINE Developers console

Now you can add LIFF apps with the LINE Developers console. As before, you can still add LIFF apps with the LIFF server API.

For more information, see Adding a LIFF app.

The maximum number of LIFF apps has been increased

Now you can add up to 30 LIFF apps for one channel. The previous maximum number was 10.

For more information, see Add LIFF app in the LIFF API reference documentation.

Notice about service outage for LINE Front-end Framework (resolved)

We'd like to inform you about a service outage regarding LINE Front-end Framework. The issue has now been resolved but we sincerely apologize for any inconvenience that this may have caused.

# Date and time of recovery

Date: June 21, 2018 around 17:30 JST (GMT+9)

# Cause of the outage

Issue with our servers.

# Details

When a LIFF app was added to a channel, the permission to retrieve the user's email address was revoked if it had been granted to the channel. Please check if the email permission has been revoked or not from the LINE Developers console. Request the permission again if it has been revoked.

We will continue to improve the quality of the services we provide to our developers and we greatly appreciate your understanding.

LINE Front-end Framework released

LINE Front-end Framework (LIFF) is a platform for web apps that run within LINE.

When launching a web app (LIFF app) registered in LIFF in LINE, the LIFF app can get data from the LINE Platform such as the LINE user ID. The LIFF app can use such data to provide features that utilize user information and send messages on behalf of the user.

For more information, see LINE Front-end Framework.