messaging-api

Comprehensive reference for LINE Messaging API — webhook setup, message sending, Flex Message design, Rich Menu management, audience targeting, insights, coupons, and channel access tokens. This skill should be used when the user asks to "build a LINE Bot", "set up a webhook", "send a push message", "design a Flex Message", "create a Rich Menu", "manage audience targeting", "get messaging insights", "create a coupon campaign", "debug webhook signature verification", or mentions LINE Messaging API, LINE OA chatbot, reply/push/multicast/narrowcast/broadcast, Flex Message JSON, Rich Menu, group chat bot, channel access token, or URL schemes. Always use this skill whenever the user mentions LINE bots, chatbots, LINE OA, or any messaging-related LINE integration, even if they don't explicitly say "Messaging API".

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 "messaging-api" with this command: npx skills add abgne/line-dev/abgne-line-dev-messaging-api

LINE Messaging API

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

Reference for building, reviewing, and debugging LINE Bots and LINE Messaging API integrations.

Workflow

Build

  1. Read references/api-common.md (rate limits, forward compatibility, error handling)
  2. Load the relevant reference for the feature being implemented
  3. For architecture or design choices, consult references/experts.md for directional guidance
  4. Write code following specs and constraints from references

Review / Debug

  1. Read references/api-common.md (rate limits, error codes)
  2. Load relevant references for the code being reviewed
  3. Cross-check code against specs (size limits, token expiry, counting rules, required fields)
  4. For design pattern concerns, consult references/experts.md
  5. Report violations with reference to specific constraints

Environment Variables

LINE_CHANNEL_ACCESS_TOKEN=Bot access token
LINE_CHANNEL_SECRET=Channel secret (webhook signature verification)

Common Specifications

Read references/api-common.md before writing any LINE bot code. Contains rules that affect all API interactions: forward compatibility (don't use strict schemas — LINE adds fields without notice), rate limits, error handling, retry policy, and logging recommendations.

Webhook

  • Verification: x-line-signature header (HMAC-SHA256, base64, key = Channel Secret)
  • Body: {"destination": "U...", "events": [...]}
  • Bot server must return 200

Signature Verification (pseudocode)

channel_secret = ENV['LINE_CHANNEL_SECRET']
signature = request.headers['x-line-signature']
body = request.body   # raw bytes, do NOT parse/reformat before verification

digest = HMAC_SHA256(key = channel_secret, message = body)
expected = Base64.encode(digest)

if signature != expected:
    return 403  # reject — not from LINE

events = JSON.parse(body)['events']
for event in events:
    handle(event)
return 200
  • Never deserialize or re-format the body before verification
  • Use UTF-8 encoding exclusively
  • Official SDKs handle this automatically — use them when possible

Full event types, properties, and webhook settings → references/webhook-events.md

Message Sending

All require Authorization: Bearer {channel access token}:

ModeEndpointPurpose
ReplyPOST /v2/bot/message/replyReply to user (requires one-time replyToken)
PushPOST /v2/bot/message/pushSend to a specific user/group at any time
MulticastPOST /v2/bot/message/multicastSend to multiple users (max 500)
BroadcastPOST /v2/bot/message/broadcastSend to all friends
  • Max 5 messages per request
  • Domain: api.line.me (general) / api-data.line.me (content upload)

Message objects → references/message-objects.md Full sending API (Narrowcast, statistics, validation, etc.) → references/message-sending.md

Flex Message

Three-layer structure:

Container (Bubble / Carousel)
  └── Block (Header / Hero / Body / Footer)
       └── Component (Box / Button / Image / Video / Icon / Text / Span / Separator)

Minimal Flex Message:

{
  "type": "flex", "altText": "Notification",
  "contents": {
    "type": "bubble",
    "body": {
      "type": "box", "layout": "vertical",
      "contents": [{"type": "text", "text": "Hello Flex!", "weight": "bold"}]
    }
  }
}

Full component specs, layout, video → references/flex-message.md Official Flex Message Simulator examples → assets/examples/

Reference Index

FileTopic
references/api-common.mdRead first. Rate limits, error handling, forward compatibility
references/webhook-events.mdWebhook event types and JSON structure
references/message-objects.mdMessage objects, Quick Reply, sender customization
references/action-objects.mdAction objects (postback, URI, datetimepicker, etc.)
references/message-sending.mdReply/Push/Multicast/Narrowcast/Broadcast, statistics
references/flex-message.mdFlex Message components, layout, styles
references/rich-menu.mdRich Menu CRUD, tab switching, display priority
references/user.mdUser profile, follower IDs, account link
references/group-chat.mdGroup/Room messaging and member APIs
references/audience.mdAudience management (create/add/get/delete)
references/insights.mdDelivery, follower, and interaction insights
references/channel-token.mdChannel access token lifecycle
references/coupon.mdCoupon CRUD, reward types, sending
references/url-schemes.mdLINE URL schemes for deep linking
references/experts.mdExpert domain routing and 17 specialist profiles
assets/examples/Flex Message JSON examples (11 showcases)

SDK

Official SDKs: Python | Node.js | Go | Java | PHP | Ruby

Other languages: use LINE OpenAPI specs with OpenAPI Generator.

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

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