返回 Skill 列表
extension
分类: 开发与工程无需 API Key

messaging-api

LINE Messaging API的全面参考——包括webhook设置、消息发送、Flex Message设计、Rich Menu管理、受众定位、洞察、优惠券以及频道访问令牌。当用户询问“构建一个LINE Bot”、“设置webhook”、“发送推送消息”、“设计Flex Message”、“创建Rich Menu”、“管理受众定位”、“获取消息洞察”、“创建优惠券活动”、“调试webhook签名验证”,或提到LINE Messaging API、LINE OA聊天机器人、回复/推送/多播/窄播/广播、Flex Message JSON、Rich Menu、群聊机器人、频道访问令牌或URL方案时,应使用此技能。即使用户没有明确地说出“Messaging API”,只要他们提到与LINE相关的聊天机器人、LINE OA或任何消息集成,都应始终使用此技能。

person作者: jakexiaohubgithub

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}:

| Mode | Endpoint | Purpose | |------|----------|---------| | Reply | POST /v2/bot/message/reply | Reply to user (requires one-time replyToken) | | Push | POST /v2/bot/message/push | Send to a specific user/group at any time | | Multicast | POST /v2/bot/message/multicast | Send to multiple users (max 500) | | Broadcast | POST /v2/bot/message/broadcast | Send 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

| File | Topic | |------|-------| | references/api-common.md | Read first. Rate limits, error handling, forward compatibility | | references/webhook-events.md | Webhook event types and JSON structure | | references/message-objects.md | Message objects, Quick Reply, sender customization | | references/action-objects.md | Action objects (postback, URI, datetimepicker, etc.) | | references/message-sending.md | Reply/Push/Multicast/Narrowcast/Broadcast, statistics | | references/flex-message.md | Flex Message components, layout, styles | | references/rich-menu.md | Rich Menu CRUD, tab switching, display priority | | references/user.md | User profile, follower IDs, account link | | references/group-chat.md | Group/Room messaging and member APIs | | references/audience.md | Audience management (create/add/get/delete) | | references/insights.md | Delivery, follower, and interaction insights | | references/channel-token.md | Channel access token lifecycle | | references/coupon.md | Coupon CRUD, reward types, sending | | references/url-schemes.md | LINE URL schemes for deep linking | | references/experts.md | Expert 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.