EN ZH

📱 LINE LIFF API

用於開發、調試或與 LINE Front-end Framework (LIFF) SDK 互動(包括初始化、身分驗證、取得使用者個人檔案、發送訊息和分享內容給好友)。

概述 (Overview)

此技能提供與 LINE Front-end Framework (LIFF) 用戶端 JS SDK 整合和互動的結構化參考。涵蓋 LIFF SDK 屬性、初始化、身分驗證、使用者上下文、個人檔案取得,以及分享目標選擇器 (Share Target Picker) 與條碼掃描等自訂功能。

何時使用 (When to Use)

核心模式 (Core Pattern)

務必儘早呼叫 liff.init(),並在調用其他 LIFF SDK 方法之前等待傳回的 Promise 解析完成。

初始化與登入流程 (JavaScript 範例)

import liff from '@line/liff';

async function initializeLiff(liffId) {
  try {
    await liff.init({ liffId });
    if (!liff.isLoggedIn()) {
      // 若尚未登入,自動重新導向至 LINE 登入頁面
      liff.login();
    } else {
      // 登入成功後開始使用其他 SDK 功能,例如取得個人檔案
      const profile = await liff.getProfile();
      console.log('User Profile:', profile);
    }
  } catch (error) {
    console.error('LIFF 初始化失敗:', error.code, error.message);
  }
}

快速參考 (Quick Reference)

liff.init() 之前即可使用的方法

這些方法可用於在 SDK 完全初始化之前查詢環境狀態:

核心 SDK 方法 (Core SDK Methods)

方法 傳回類型 描述
liff.init(config) Promise<void> 使用 liffId 初始化 LIFF 應用程式
liff.isLoggedIn() Boolean 檢查使用者是否已通過驗證
liff.login(options) void 觸發 LINE 登入流程
liff.logout() void 登出使用者
liff.getProfile() Promise<Profile> 取得使用者個人檔案(姓名、圖片、狀態訊息)
liff.getDecodedIDToken() Object 解碼使用者的 OIDC ID Token(包含電子郵件)
liff.sendMessages(msgs) Promise<void> 向當前聊天室發送訊息(最多 5 則)
liff.shareTargetPicker(msgs) Promise<Response> 開啟好友選擇器以分享訊息
liff.openWindow(options) void 在 LIFF 瀏覽器或外部瀏覽器中開啟網址

實作步驟 (Implementation Steps)

  1. 註冊 LIFF 應用程式:在 LINE Developers 控制台建立 LINE Login 通道,並註冊您的 LIFF 應用程式以取得 LIFF ID 並設定 Endpoint URL
  2. 匯入 SDK:透過 CDN (https://static.line-scdn.net/liff/edge/2/sdk.js) 或 npm (npm install @line/liff) 將 LIFF SDK 新增到您的專案中。
  3. 初始化:呼叫 liff.init({ liffId })。請確保僅在 init 的 Promise 解析完成之後才觸發網址變更或分析工具的頁面檢視,以防止憑證洩漏。
  4. 獲取權限範圍 (Scopes):確保您的通道已被授予必要的權限範圍(例如 profile, openid, chat_message.write),以便調用個人檔案或傳送訊息的 API。
  5. 驗證 Token(伺服器端):如果您需要在後端驗證使用者身分,請將原始 ID Token(透過 liff.getIDToken() 取得)或 Access Token 傳送到您的後端,並呼叫 LINE 的驗證端點。

常見錯誤 (Common Mistakes)

← 返回技能庫