line-mini-app

Comprehensive reference for LINE MINI App — Service Messages, Common Profile Quick Fill, In-App Purchase, Console setup (3 internal channels), submission review, and performance guidelines for web apps running inside LINE as an enhanced LIFF platform. This skill should be used when the user asks to "build a LINE MINI App", "send a service message", "set up Common Profile Quick Fill", "implement in-app purchase", "configure MINI App Console", "submit MINI App for review", or mentions LINE MINI App, Service Messages, notification token, Common Profile, IAP purchase flow, 3 internal channels, consent simplification, Custom Path, custom share messages, or verified vs unverified MINI App. Always use this skill whenever the user mentions LINE MINI App, mini apps in LINE, or enhanced LIFF features like service messages or in-app purchase, even if they don't explicitly say "MINI App".

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "line-mini-app" with this command: npx skills add abgne/line-dev/abgne-line-dev-line-mini-app

LINE MINI App

Do not answer LINE MINI App questions from memory — LINE updates APIs frequently and training data is unreliable. Always consult the references below.

LINE MINI App is a web app platform built on LIFF that runs inside LINE.

Workflow

  1. Read references/guidelines.md first (policy rules, specs, constraints)
  2. Load the relevant reference for the feature being worked on
  3. For architecture or design choices, consult references/experts.md
  4. When reviewing, cross-check code against specs (token lifecycle, message limits, scope requirements, template naming, IAP order flow)

Environment Variables

LIFF_ID=LIFF app ID (LINE MINI App runs on LIFF)
LINE_CHANNEL_ACCESS_TOKEN=Stateless channel access token (Service Messages, IAP)
LINE_LOGIN_CHANNEL_ID=LINE Login Channel ID (server-side verification)
LINE_LOGIN_CHANNEL_SECRET=Channel secret (server-side only)

MINI App vs LIFF

FeatureLIFFMINI App
Service Messages✅ Proactive notifications via notification token
Common Profile Quick Fill✅ Auto-fill forms with LINE profile data
In-App Purchase✅ App store payments (iOS/Android)
Submission reviewNot requiredRequired (LINE review process)
Entry pointLIFF URLLINE MINI App list + LIFF URL

All LIFF APIs are available in MINI App context (LIFF browser). See Key Constraints for external browser limitations.

Service Messages

User opens MINI App → liff.getAccessToken() → Issue notification token → Send service messages (max 5)
  • Token validity: 1 year, max 5 messages per token
  • LIFF access token is revoked when user closes the MINI App — issue notification token before user leaves

Full API specs, template structure, error codes → references/service-messages.md

Common Profile Quick Fill

const result = await liff.$commonProfile.get(scopes, { formatOptions });
liff.$commonProfile.fill(result.data);  // auto-fill <input data-liff-autocomplete="...">

Full API specs, scopes, dummy data → references/common-profile.md

In-App Purchase

Japan only. Consumable digital content only. Requires LIFF SDK ≥ 2.26.0, LINE ≥ 15.6.0, LIFF browser.

Purchase flow (client + server), dev guidelines, error codes → references/in-app-purchase.md

Key Constraints

  • MINI App runs on LIFF — all LIFF constraints apply (Endpoint URL, init order, environment differences)
  • Stateless channel access tokens only — long-lived and v2.1 tokens cannot be used for MINI App channels
  • Channel consent simplification only skips openidprofile, email, chat_message.write require verification screen; needs LIFF SDK v2.13.x+, verified MINI App
  • Custom share messages must use Bubble container (not Carousel); actions only on buttons and footer
  • External browser: liff.init() doesn't auto-login (use withLoginOnExternalBrowser: true); sendMessages, openWindow, closeWindow, iap.* unavailable
  • LINE Pay terminated in Japan (April 30, 2025) — verify current availability at LINE Pay docs
  • IAP auth differs by endpoint: reserve uses user token, webhook history uses channel token; webhook uses signature verification, not IP restriction
  • Channel cannot be moved to another provider after creation; user IDs differ per provider

Reference Index

FileTopic
references/guidelines.mdRead first. MINI App overview, verified vs unverified, specs, performance, migration, development rules, Quick Fill design regulations
references/console-setup.mdChannel creation, 3 internal channels, LIFF ID, tokens, basic auth, display mapping, localization, settings reflection, re-review
references/features.mdBuilt-in features (action button, multi-tab, consent simplification), custom features (Custom Path, shortcuts, custom action button, share messages, OA, payments), permanent links, external browser, UI components
references/service-messages.mdNotification token lifecycle, sending API, template structure, review lifecycle, character limits, error codes
references/common-profile.mdQuick Fill API, scopes, form auto-fill, plugin setup, dummy data
references/in-app-purchase.mdPurchase flow (client + server), reserve, webhooks, dev guidelines, application & setup, test payment, error codes
references/submission-review.mdSubmission process, pre-review checklist, review period, approval flow, publish changes
references/experts.mdLINE MINI App domain experts for architecture guidance

SDK & Tools

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

messaging-api

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

line-liff

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

line-login

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

line-notification-message

No summary provided by upstream source.

Repository SourceNeeds Review