🟢 LINE OA — Messaging API

Rich Menu 2 หน้า
ผ่าน Postman

สร้างระบบ Rich Menu สลับหน้าอัตโนมัติด้วย richmenuswitch + Alias API โดยไม่ต้องใช้ n8n หรือ Webhook

📐 2500×1686 px 📦 < 1 MB 🔗 LINE Messaging API v2 🚫 ไม่ต้อง Webhook
1
สร้างโครงสร้าง
2
อัปโหลดรูป
3
สร้าง Alias
4
ตั้ง Default
🏗️

ส่วนที่ 1 — สร้างโครงสร้าง Rich Menu

ทำ 2 ครั้ง (หน้า 1 และหน้า 2) — จด richMenuId ที่ได้ไว้ทุกครั้ง
1
🗂️ สร้างโครงสร้าง Rich Menu หน้าที่ 1 POST

ตั้ง Headers: Authorization: Bearer {token} และ Content-Type: application/json
ช่อง 1–3 กำหนด action ตามต้องการ — ช่องที่ 4 (มุมขวาล่าง) ใส่ richmenuswitch → menu-b เพื่อสลับหน้า
กด Send → ได้ richMenuId กลับมา จดไว้!

URL https://api.line.me/v2/bot/richmenu
JSON — Body (raw)
{
  "size": { "width": 2500, "height": 1686 },
  "selected": true,
  "name": "Menu Page 1",
  "chatBarText": "เมนูยา NSAIDs",
  "areas": [
    {
      // ช่อง 1: บนซ้าย
      "bounds": { "x": 0, "y": 0, "width": 1250, "height": 843 },
      "action": { "type": "message", "text": "รู้จักยา NSAIDs" }
    },
    {
      // ช่อง 2: บนขวา
      "bounds": { "x": 1250, "y": 0, "width": 1250, "height": 843 },
      "action": { "type": "message", "text": "ผลต่อไต" }
    },
    {
      // ช่อง 3: ล่างซ้าย
      "bounds": { "x": 0, "y": 843, "width": 1250, "height": 843 },
      "action": { "type": "message", "text": "ความเสี่ยง" }
    },
    {
      // ช่อง 4: ล่างขวา — ปุ่มสลับหน้า
      "bounds": { "x": 1250, "y": 843, "width": 1250, "height": 843 },
      "action": { "type": "richmenuswitch", "richMenuAliasId": "menu-b", "data": "switch_to_b" }
    }
  ]
}
2
🗂️ สร้างโครงสร้าง Rich Menu หน้าที่ 2 POST

URL เดิม, Headers เดิม — ปรับ Body ด้านล่าง
ช่องที่ 4 ใส่ richmenuswitch → menu-a เพื่อสลับกลับหน้าแรก
กด Send → ได้ richMenuId ของหน้า 2 จดไว้!

URL https://api.line.me/v2/bot/richmenu
JSON — Body (raw)
{
  "size": { "width": 2500, "height": 1686 },
  "selected": false,
  "name": "Menu Page 2",
  "chatBarText": "เมนูยา NSAIDs",
  "areas": [
    {
      // ช่อง 1: บนซ้าย
      "bounds": { "x": 0, "y": 0, "width": 1250, "height": 843 },
      "action": { "type": "message", "text": "ใช้ยาปลอดภัย" }
    },
    {
      // ช่อง 2: บนขวา
      "bounds": { "x": 1250, "y": 0, "width": 1250, "height": 843 },
      "action": { "type": "message", "text": "ยาแก้ปวดทางเลือก" }
    },
    {
      // ช่อง 3: ล่างซ้าย
      "bounds": { "x": 0, "y": 843, "width": 1250, "height": 843 },
      "action": { "type": "message", "text": "ยาทาภายนอก" }
    },
    {
      // ช่อง 4: ล่างขวา — ปุ่มสลับกลับหน้า 1
      "bounds": { "x": 1250, "y": 843, "width": 1250, "height": 843 },
      "action": { "type": "richmenuswitch", "richMenuAliasId": "menu-a", "data": "switch_to_a" }
    }
  ]
}
🖼️

ส่วนที่ 2 — อัปโหลดรูปภาพ

ทำ 2 ครั้ง (แยกตาม richMenuId หน้า 1 และหน้า 2)
⚠️ ข้อจำกัดรูปภาพ LINE API
ขนาดพิกเซล: 2500 × 1686 px เป๊ะ — ขนาดไฟล์: ไม่เกิน 1 MB — นามสกุล: JPG หรือ PNG
แนะนำ: สร้างใน Canva (Custom size 2500×1686) แล้ว Download เป็น JPG คุณภาพ 80%
3
📤 อัปโหลดรูปภาพเข้า Rich Menu POST

เปลี่ยน Content-Type เป็น image/jpeg
Body → เลือก binary → กด Select File → เลือกไฟล์รูป .jpg
ทำซ้ำกับ richMenuId ของหน้า 2 ด้วย
ผลลัพธ์: ตอบกลับ {} = สำเร็จ

URL https://api-data.line.me/v2/bot/richmenu/{richMenuId}/content
🔗

ส่วนที่ 3 — สร้าง Alias ให้เมนูสลับหน้าได้

บอก LINE ว่า menu-a และ menu-b คือ richMenuId ไหน
4
🏷️ สร้าง Alias → menu-a (หน้า 1) POST

ผูกชื่อแฝง menu-a กับ richMenuId ของหน้า 1
ผลลัพธ์: {} + 200 OK

URL https://api.line.me/v2/bot/richmenu/alias
JSON — Body (raw)
{
  "richMenuAliasId": "menu-a",
  "richMenuId": "richmenu-xxxx...หน้า1"
}
5
🏷️ สร้าง Alias → menu-b (หน้า 2) POST

ผูกชื่อแฝง menu-b กับ richMenuId ของหน้า 2
URL และ Header เดิม — เปลี่ยนแค่ Body

URL https://api.line.me/v2/bot/richmenu/alias
JSON — Body (raw)
{
  "richMenuAliasId": "menu-b",
  "richMenuId": "richmenu-xxxx...หน้า2"
}

ส่วนที่ 4 — ตั้งเมนูเริ่มต้น

ผู้ใช้ทุกคนจะเห็นหน้า 1 เมื่อเปิดแชท
6
🎯 ตั้ง Default Menu (หน้า 1) POST

ใส่ Header: Authorization เท่านั้น — ไม่ต้องใส่ Content-Type
Body: เลือก none (ว่างเปล่า)
ผลลัพธ์: {} + 200 OK = สำเร็จทันที

URL https://api.line.me/v2/bot/user/all/richmenu/{richMenuId หน้า 1}
🎮

ประเภท Action ที่ใส่ได้ในแต่ละช่อง

เลือกตามการใช้งาน — ผสมกันได้อิสระ
🔗 uri

เปิดหน้าเว็บภายนอก เช่น บทความ, Google Form, LIFF URL
"type":"uri","uri":"https://..."

💬 message

ส่งข้อความเข้าแชท ใช้คู่กับ Keyword Reply หรือ Webhook
"type":"message","text":"ข้อความ"

🔄 richmenuswitch

สลับหน้า Rich Menu ทันที — ไม่ต้อง Webhook
"type":"richmenuswitch","richMenuAliasId":"menu-b"

📷 camera / cameraRoll

เปิดกล้องถ่ายรูป หรือเลือกรูปจากอัลบั้ม
"type":"camera" หรือ "type":"cameraRoll"

🔧

แก้ไขและ Troubleshoot

🖼️

Error 413 (ไฟล์ใหญ่เกิน): นำรูปไปลดขนาดที่ TinyPNG หรือ Download จาก Canva เป็น JPG Quality 80%

📐

Error "image size not allowed": รูปต้องเป็น 2500×1686 px เป๊ะ — ใช้ Canva Custom Size แล้ว Download

📱

เมนูไม่ขึ้นในมือถือ: เข้า manager.line.biz → ลบเมนูเก่าออก จากนั้น Block แล้ว Unblock LINE OA ในมือถือ

✏️

ต้องการแก้ไข Rich Menu: สร้าง richMenuId ใหม่ → อัปโหลดรูปใหม่ → อัปเดต Alias ชี้ไปที่ ID ใหม่ → ลบ ID เก่าด้วย DELETE

🗑️

ลบเมนูเก่าทิ้ง: DELETE https://api.line.me/v2/bot/richmenu/{richMenuId} เพื่อคืนโควต้า