OAuth 權限範圍一覽與利用可否

oauth scope api permission liff
關於本指南
以一覽彙整了 ReceiptRoller 的 OAuth API 可指定的所有權限範圍,與各權限範圍被授予哪種類型的應用程式。登錄 OAuth 應用程式前,或組立授權 URL 前請確認。

OAuth 權限範圍一覽與利用可否

ReceiptRoller 的 API,依 OAuth 2.0 的權限範圍控制可存取的資源。登錄應用程式時與誘導使用者到授權畫面時,請以最小限度只指定必要的權限範圍。權限範圍可以半形空格分隔複數指定。


權限範圍的分類

權限範圍依目的分成 4 個類別。

  • Store 系 — 店鋪、商業帳戶的商業資料(商品、訂單、庫存、預約、員工等)
  • CRM 系 — 顧客檔案、分群資訊
  • SNS / Analytics 系 — SNS 貼文、觀眾、分析、銷售報告
  • User 系(消費者) — 個人使用者的收據、支出、我的最愛店鋪等

如後述,User 系權限範圍原則上只授予第一方應用程式與已核准合夥人的嚴格權限範圍。


Store 系權限範圍

供店鋪業主、商業帳戶管理者以 OAuth 操作自家的店鋪資料的權限範圍。對外部合夥人應用程式也可授予,但需要店鋪端在 OAuth 同意畫面許可。

權限範圍 被授予的權限
store.products.read商品、庫存資訊的參照
store.products.write商品的登錄、更新
store.orders.read訂單資料的參照
store.orders.write訂單狀態的更新
store.customers.read顧客資料的參照
store.customers.write顧客的建立、更新、刪除
store.coupons.read優惠券資料的參照
store.coupons.write優惠券的建立、更新
store.inventory.read倉庫、庫存資料的參照
store.inventory.write庫存數的調整、盤點反映
store.flyers.read店鋪傳單的參照
store.flyers.write店鋪傳單的建立、更新、公開
store.staff.read員工、staff 資訊的參照
store.staff.write員工的建立、更新、刪除
store.business-hours.read營業時間、特例營業日、可就業時間的參照
store.business-hours.write營業時間、特例營業日、可就業時間的更新
store.reservations.read預約、預約框、座位資訊的參照
store.reservations.write預約的建立、變更、狀態更新,預約框的生成
store.info.read店鋪的基本資訊(店鋪名、聯絡處、地址)的參照
store.info.write店鋪的基本資訊(店鋪名、聯絡處、地址)的更新

CRM 系權限範圍

權限範圍 被授予的權限
crm.profiles.readCRM 顧客檔案的參照
crm.segments.readCRM 分群、排名的參照

SNS / Analytics 系權限範圍

權限範圍 被授予的權限
sns.content.readSNS 貼文資料的參照
sns.content.writeSNS 貼文的建立、更新、公開、預約、刪除
sns.audience.readSNS 觀眾資料的參照
analytics.read分析快照的參照
sales.read銷售報告、交易資料與商業洞察的參照

User 系(消費者)權限範圍

重要:User 系權限範圍需要事前審查
這些權限範圍是存取個人使用者的收據、支出、我的最愛店鋪等消費者個人資料的。只授予 ReceiptRoller 第一方應用程式,與明示地被核准的合夥人應用程式。
在未審查的應用程式指定 user.* 權限範圍呼叫授權 URL,會回傳 app_not_approved 錯誤。
權限範圍 被授予的權限
user.profile.read使用者基本資訊的參照
user.profile.write使用者基本資訊的更新
user.receipts.read使用者收到的收據的參照
user.spending.read月次支出摘要的參照
user.spending.write支出、預算資料的更新
user.coupons.read我的最愛店鋪的優惠券參照
user.favorites.read我的最愛店鋪一覽的參照
user.favorites.write我的最愛店鋪的追加、刪除

重要的制約

1. User 系權限範圍是事前審查制

OAuth 應用程式登錄時含 user.* 權限範圍,應用程式的 UserScopeStatus 會變成 pending(等待審查)。到 ReceiptRoller 營運團隊的審查變成 approved 為止,在授權流程指定 user.* 權限範圍會回傳錯誤。

外部的店鋪、合夥人「想在自家的 LIFF 應用程式或行動應用程式,顯示使用者收到的全收據」這樣的使用案例,原則上是這個審查的對象。請隨意向支援洽商。

2. Store 系與 User 系無法混在同一授權流程

1 個授權請求無法同時指定 store.orders.readuser.receipts.read。因為這些行為者(店鋪 vs. 使用者)不同,授權伺服器會拒絕。

要做處理兩者的資料的服務的情況,請登錄 2 個 OAuth 應用程式,以各自別別的授權流程取得權杖。

3. 最小權限的原則

為了獲得使用者(或店鋪業主)的信賴,也請只指定真的必要的權限範圍。「為了以防萬一也放入 write」「不使用但其他權限範圍也申請」不建議。


依使用案例的建議權限範圍

想做的事 必要的權限範圍 備考
從外部系統同步店鋪的庫存、訂單 store.products.read store.products.write store.orders.read 店鋪業主的同意可取得
反映庫存數的調整、盤點結果 store.inventory.read store.inventory.write 店鋪業主的同意可取得
從外部的預約系統、行動應用程式接受預約 store.reservations.read store.reservations.write 店鋪業主的同意可取得
在班表管理應用程式處理員工與可就業時間 store.staff.read store.staff.write store.business-hours.read 店鋪業主的同意可取得
從 staff 應用程式、外部系統更新店鋪資訊(店鋪名、聯絡處、地址) store.info.read store.info.write 店鋪業主的同意可取得。參照不需授予,更新需要 store.info.write
將自家的店鋪傳單從公司內 CMS 批次投稿 store.flyers.write 店鋪業主的同意可取得
對行銷部門串接 CRM 分群 crm.profiles.read crm.segments.read 店鋪業主的同意可取得
將銷售儀表板組入自家工具 sales.read analytics.read 店鋪業主的同意可取得
在自家行動應用程式顯示使用者的全收據 user.receipts.read 需要事前審查
在記帳應用程式可視化月次支出 user.spending.read user.receipts.read 需要事前審查
想在 LIFF 取得他社的店鋪資料 不可(只能取得自家的 Store 系權限範圍)

關於從 LIFF / LINE Mini App 的利用

從 LIFF 應用程式(LINE Mini App)呼叫 ReceiptRoller 的 API 的情況,也使用標準的 OAuth 2.0 Authorization Code 流程

不提供 LINE ID 權杖的直接交換

「LINE ID 權杖 → ReceiptRoller 的存取權杖」直接交換的端點現時點不提供。LIFF 應用程式也與其他 Web 應用程式相同,需要誘導使用者到 ReceiptRoller 的授權畫面。

LIFF 的實作模式

  1. LIFF 應用程式啟動後,以 liff.init() 初始化 LIFF
  2. ReceiptRoller API 需要的時機,以 liff.openWindow() 或通常的連結誘導到 /oauth/authorize
  3. 使用者在 ReceiptRoller 的授權畫面許可,redirect_uri 會回傳授權碼
  4. 將授權碼以 POST /api/v1/auth/tokengrantType: authorization_code)交換為存取權杖
  5. 將取得的權杖以 Authorization: Bearer 標頭附加至 API 請求

使用 User 系權限範圍時的注意

在 LIFF 應用程式指定 user.* 權限範圍的情況也需要上述的事前審查。「因為在 LINE 已驗證所以 ReceiptRoller 的使用者驗證可省略」這樣的設計不成立。這是為了安全性與使用者同意的透明性的設計。


相關指南

發布日: 2026-04-27 更新日: 2026-07-06