messaging-api について
LINE BotやMessaging API連携の実装、レビュー、デバッグに使うリファレンススキルです。API仕様と設計指針をトピック別にまとめています。
主な機能
- 01トピック別のAPIリファレンス
- 02Bot実装ワークフロー
- 03コードレビューとデバッグの指針
- 04Webhookと署名の仕様
- 05メッセージとFlex Messageの仕様
活用シーン
- 01LINE Bot機能の実装
- 02Webhook署名処理の確認
- 03API制限と必須項目のレビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ abgne/ line-dev --skill messaging-apiインストール後、Claude Code で/messaging-apiを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/examples/apparel.jsonhotel.jsonproduct_list.jsonreceipt.jsonrestaurant.jsonshopping.jsonsocial.jsonticket.jsontodo.jsontransit.jsonvideo_hero.jsonreferences/action-objects.mdapi-common.mdaudience.mdchannel-token.mdcoupon.mdexperts.mdflex-message.mdgroup-chat.mdinsights.mdmessage-objects.mdmessage-sending.mdrich-menu.mdurl-schemes.mduser.mdwebhook-events.md詳細
LINE Messaging API
LINE API に関する質問に、記憶だけを頼りに回答しないでください。LINE は API を頻繁に更新しており、学習データは信頼できません。必ず以下のリファレンスを確認してください。
LINE Bot および LINE Messaging API 連携の構築、レビュー、デバッグに関するリファレンスです。
ワークフロー
構築
- references/api-common.md を読みます(レート制限、前方互換性、エラー処理)
- 実装する機能に関連するリファレンスを読み込みます
- アーキテクチャや設計上の選択については、方向性の指針として references/experts.md を確認します
- リファレンスの仕様と制約に従ってコードを記述します
レビュー/デバッグ
- references/api-common.md を読みます(レート制限、エラーコード)
- レビュー対象のコードに関連するリファレンスを読み込みます
- 仕様とコードを照合します(サイズ制限、トークンの有効期限、カウント規則、必須フィールド)
- 設計パターンに関する懸念については、references/experts.md を確認します
- 違反を具体的な制約を示して報告します
環境変数
LINE_CHANNEL_ACCESS_TOKEN=Bot access token
LINE_CHANNEL_SECRET=Channel secret (webhook signature verification)
共通仕様
LINE Bot のコードを記述する前に、references/api-common.md を読んでください。 すべての API インタラクションに影響するルールが記載されています。前方互換性(LINE は予告なくフィールドを追加するため、厳密なスキーマを使用しない)、レート制限、エラー処理、リトライポリシー、ログ記録に関する推奨事項などが含まれます。
Webhook
- 検証:
x-line-signatureヘッダー(HMAC-SHA256、base64、キー = Channel Secret) - 本文:
{"destination": "U...", "events": [...]} - Bot サーバーは
200を返す必要があります
署名検証(擬似コード)
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
- 検証前に本文をデシリアライズしたり、再フォーマットしたりしないでください
- UTF-8 エンコーディングのみを使用してください
- 公式 SDK はこれを自動的に処理します。可能な場合は公式 SDK を使用してください
イベントタイプ、プロパティ、Webhook 設定の詳細 → references/webhook-events.md
メッセージの送信
すべて Authorization: Bearer {channel access token} が必要です。
| モード | エンドポイント | 目的 |
|---|---|---|
| 返信 | POST /v2/bot/message/reply | ユーザーに返信します(1 回限りの replyToken が必要です) |
| プッシュ | POST /v2/bot/message/push | 特定のユーザー/グループにいつでも送信します |
| マルチキャスト | POST /v2/bot/message/multicast | 複数のユーザーに送信します(最大 500 人) |
| ブロードキャスト | POST /v2/bot/message/broadcast | すべての友だちに送信します |
- 1 リクエストあたり最大 5 件のメッセージ
- ドメイン:
api.line.me(一般)/api-data.line.me(コンテンツのアップロード)
メッセージオブジェクト → references/message-objects.md 送信 API の詳細(ナローキャスト、統計、検証など)→ references/message-sending.md
Flex Message
3 層構造:
Container (Bubble / Carousel)
└── Block (Header / Hero / Body / Footer)
└── Component (Box / Button / Image / Video / Icon / Text / Span / Separator)
Flex Message の最小例:
{
"type": "flex", "altText": "Notification",
"contents": {
"type": "bubble",
"body": {
"type": "box", "layout": "vertical",
"contents": [{"type": "text", "text": "Hello Flex!", "weight": "bold"}]
}
}
}
コンポーネントの全仕様、レイアウト、動画 → references/flex-message.md
公式 Flex Message Simulator の例 → assets/examples/
リファレンス一覧
| ファイル | トピック |
|---|---|
| references/api-common.md | 最初にお読みください。 レート制限、エラー処理、前方互換性 |
| references/webhook-events.md | Webhook イベントの種類と JSON 構造 |
| references/message-objects.md | メッセージオブジェクト、クイックリプライ、送信者のカスタマイズ |
| references/action-objects.md | アクションオブジェクト(postback、URI、datetimepicker など) |
| references/message-sending.md | Reply/Push/Multicast/Narrowcast/Broadcast、統計 |
| references/flex-message.md | Flex Message のコンポーネント、レイアウト、スタイル |
| references/rich-menu.md | Rich Menu の CRUD、タブ切り替え、表示優先度 |
| references/user.md | ユーザープロフィール、フォロワー ID、アカウント連携 |
| references/group-chat.md | グループ/ルームのメッセージングとメンバー API |
| references/audience.md | オーディエンス管理(作成/追加/取得/削除) |
| references/insights.md | 配信、フォロワー、インタラクションのインサイト |
| references/channel-token.md | チャネルアクセストークンのライフサイクル |
| references/coupon.md | クーポンの CRUD、特典の種類、送信 |
| references/url-schemes.md | ディープリンク用の LINE URL スキーム |
| references/experts.md | エキスパート分野のルーティングと 17 種類の専門家プロフィール |
| assets/examples/ | Flex Message の JSON サンプル(11 件のショーケース) |
SDK
公式 SDK:Python | Node.js | Go | Java | PHP | Ruby
その他の言語:LINE OpenAPI specs を OpenAPI Generator と併用してください。