LIFF v2 升級指南:趕在 v1 終止服務之前,快升級到 v2 吧!(別懷疑,真的會終止!)


即時通訊軟體的本質是聊天,也就是一問一答,所以在介面上, LINEFB MessengerTelegram 都很有默契地將畫面區分成左右兩邊,左邊是對方,右邊是自己。假使聊天的對象是 Chatbot 聊天機器人,這種問答式的介面將成為天花板,限制了服務的發展可能性。於是 LINE 在 2018 年 6 月推出了 LIFF ( LINE Front-end Framework )前端技術,可以將聊天機器人應用從 LINE 聊天視窗延伸到網頁(不只是瀏覽,還可以互動),畢竟如果是網頁的話,大家在操作上比較熟悉,而且版面也比較大,不再受到必須左右一問一答的介面限制。

在 LINE Login 頻道中管理 LIFF App 網頁應用。
在 LINE Login 頻道中管理 LIFF App 網頁應用。

隨著前端技術的演進, LINE 緊接著在 2019 年 10 月推出了第二版( v2 )的 LIFF ,原先的第一版( v1 )有分 Client API即將停用)和 Server API繼續支援)兩類,前者是 LIFF 網頁會使用到的相關 JavaScript 函式,而後者則可以用來開發成類似 LINE Developers 後台的 LIFF 管理工具(不外乎 CRUD 這四個基本操作動作,也就是資料的新增、讀取、更新、刪除)。

在最初 2019/10/16 的〈LIFF v2 正式上線〉新聞稿中,就特地提到「LIFF v1 未來將被終止使用」,並且點出了 LIFF v2 的 4 項特色功能:

  1. 可於外部瀏覽器中執行
  2. 取得用戶資料與 Email
  3. 讀取 QR Code(但是 iOS 的 LINE v9.19.0 或之後版本已不再支援此功能,後續的新聞稿也提醒開發者記得調整程式碼)
  4. 取得 LIFF App 設定詳細資料(例如執行 LIFF App 的手機或桌機的作業系統類型)

然而,不少服務開發商非常需要透過 CRUD 動作來管理 LIFF App ,就像圖文選單( Rich Menu )也有對應 CRUD 操作的 API,因此雖然在 2020/01/21 發佈了〈LIFF v1 Server API 將於 2020 年 3 月 31 日停用〉新聞稿,但是隨後又在 2020/02/07 的〈LIFF v1 API 及停用日期變更〉新聞稿中改弦易轍,讓 LIFF v1 Server API 繼續提供服務。

可以想見的是,距離 LIFF v1 Client API 遭到停用的日子已不遠矣,你或許可以稍後再仔細認識 LIFF v2 API 提供的更多便利功能,但是只要你是開發者,手邊有 LIFF App 使用到 LIFF v1 Client API ,那麼此時此刻最需要關注的應當是「從 v1 升級到 v2」這件事!所幸步驟其實並不特別複雜,堪稱無痛或微痛,可以歸納為 2 個主要動作。

目錄大綱(點擊前往→)

一、重新建立 LIFF App

首先必須留意的是,自 2020/02/05 起,已無法再於 Messaging API 頻道中建立 LIFF App ,必須改用 LINE Login 頻道。雖然原先存在於 Messaging API 頻道中的 LIFF App 仍可以使用、也可以編輯,但是誠如 2019/11/11 的〈停止在 Messaging API channel 新增 LIFF app〉新聞稿所言, LINE 官方仍強烈建議所有 LIFF App 通通搬到 LINE Login 頻道中,因為無法保證未來所有的功能均可正常使用。

所以 Messaging API 頻道的 LIFF 分頁會列出原有 LIFF App 清單(如下圖左所示),如果本來就沒有,或者是 2020/02/05 之後建立的 Messaging API 頻道,則會出現粗體「 This channel doesn’t have any LIFF apps yet 」字樣(如下圖右所示),不過無論是哪一種,都會有明顯的橘色「 Use a LINE Login channel 」提示!

建立 LINE Login 頻道的方式跟建立 Messaging API 頻道如出一轍,在 LINE Developers 網站,選擇相同的供應商( Provider ),點擊加號建立新頻道( Create a new channel ),在彈跳出來的頻道類型( channel type )選擇視窗中,選擇「 LINE Login 」。同樣地,在 LINE Login 頻道中建立 LIFF App 的方式也跟 Messaging API 頻道如出一轍,都是來到 LIFF 分頁,然後點擊綠色的「新增」( Add )按鈕。

二、重新綁定 LIFF App

無論是否決定要在 LINE Login 頻道中重新建立 LIFF App ,因應 LIFF v1 Client API 即將遭到停用,原先的 LIFF 網頁程式碼都必須調整,基本上 LIFF v1v2 從一開始的初始化呼叫就不同了, v2 必須帶入 LIFF ID ,也就是 LIFF URL 扣掉開頭「 line://app/ 」剩餘的部分(這項資訊可以在 LINE Login 頻道或 Messaging API 頻道的 LIFF 分頁找到),以及改變 LIFF SDK 的網址,換成 https://static.line-scdn.net/liff/edge/2.1/sdk.js

假使是重新建立的 LIFF App ,除了剛才在調整程式碼的時候要抄對 LIFF ID 之外,還有一件很重要的事情要做,就是更新聊天機器人程式碼中的 LIFF URL ,因為 LIFF ID 已經由 LINE Developers Console 重新分配了,所以「 line://app/ 」網址也就不同了。此外,為了避免混淆,建議可以把 Messaging API 頻道中舊有的 LIFF App 移除,或者至少更名,加上「(舊)」之類的註記。

最後,給 LINE Login 頻道新手的溫馨提醒,千萬別忘了將狀態從「開發中」( Developing )更新為「已發佈」( Published ),否則存取 LIFF App 時會遭遇 400 Bad Request ,那是當然的,因為服務尚未公開呀!

祝福大家這次的升級行動都順利,讓我們繼續快樂地開發有趣實用的 LIFF App 吧!