noppruts

LINE Rich Menu ผ่าน API: สร้าง อัปโหลดรูป ตั้งเมนู (n8n)

คำตอบสั้น: Rich Menu ทำผ่าน API ได้ 3 ขั้น: สร้างเมนู → อัปโหลดรูป → ตั้งให้ใช้ ใน n8n ใช้โหนด HTTP Request ได้ทั้งหมด

ตรวจรูปแบบคำขอเมื่อ 2026-10-10 จาก ข้อกำหนด OpenAPI ทางการของ LINE ผมยังไม่ได้ทดสอบกับ channel จริงของผู้อ่าน ให้ทดลองบน channel ทดสอบก่อน

ขั้น 1: สร้างเมนู

POST https://api.line.me/v2/bot/richmenu
Authorization: Bearer {Channel access token}
Content-Type: application/json

{
  "size": { "width": 2500, "height": 843 },
  "selected": true,
  "name": "เมนูหลัก",
  "chatBarText": "เมนู",
  "areas": [
    {
      "bounds": { "x": 0, "y": 0, "width": 1250, "height": 843 },
      "action": { "type": "message", "text": "สั่งซื้อ" }
    },
    {
      "bounds": { "x": 1250, "y": 0, "width": 1250, "height": 843 },
      "action": { "type": "uri", "uri": "https://example.com" }
    }
  ]
}

ผลลัพธ์จะมี richMenuId ให้เก็บไว้ใช้ขั้นต่อไป ฟิลด์ size, selected, name, chatBarText, areas ตามที่ข้อกำหนดทางการระบุ ขนาดภาพต้องเป็นขนาดที่ LINE รองรับ (เช่น 2500×1686 หรือ 2500×843) ให้ตรวจรายการขนาดในเอกสารล่าสุด

ขั้น 2: อัปโหลดรูป

POST https://api-data.line.me/v2/bot/richmenu/{richMenuId}/content
Authorization: Bearer {Channel access token}
Content-Type: image/png        (หรือ image/jpeg)

(เนื้อหาเป็นไบนารีของภาพ)

ใน n8n ตั้ง HTTP Request ให้ส่ง Body เป็น Binary File และกำหนดส่วนหัว Content-Type ให้ตรงกับชนิดภาพ จุดที่พลาดบ่อย: ส่งไปที่ api.line.me แทน api-data.line.me

ขั้น 3: ตั้งให้ใช้

คำสั่งที่ใช้บ่อย

ใช้กับ n8n อย่างไรให้เป็นระบบ

ผูกเมนูตามสถานะลูกค้า เช่น ลูกค้าใหม่เห็นเมนูหนึ่ง ลูกค้าที่สั่งแล้วเห็นอีกเมนู โดยให้ workflow เรียกขั้นที่ 3 แบบรายคนเมื่อสถานะเปลี่ยน

ผมกำลังเสนอการทำงานด้าน Rich Menu ให้โหนดชุมชนที่กล่าวถึง (ยังไม่ได้รวมเข้าโปรเจกต์ ณ วันที่เขียน) หากรวมแล้วจะอัปเดตบทความนี้

คำถามที่พบบ่อย

รูป Rich Menu อัปโหลดที่ไหน?

ต้องอัปโหลดไปที่โฮสต์ api-data.line.me ด้วย POST /v2/bot/richmenu/{richMenuId}/content ไม่ใช่ api.line.me ตามข้อกำหนด OpenAPI ของ LINE และต้องเป็นภาพ JPEG หรือ PNG ที่ขนาดตรงกับ Rich Menu

ตั้งเมนูให้ทุกคนหรือรายคนได้ไหม?

ได้ทั้งสองแบบ: ตั้งเป็นเมนูตั้งต้นของทุกคนด้วย /v2/bot/user/all/richmenu/{richMenuId} หรือผูกกับผู้ใช้รายคนด้วย /v2/bot/user/{userId}/richmenu/{richMenuId}

โหนดชุมชนของ n8n มี Rich Menu ไหม?

ณ วันที่ตรวจ (10 ต.ค. 2026) โค้ดโหนด n8n-nodes-line-messaging ยังไม่มีการทำงานด้าน Rich Menu จึงแนะนำให้ใช้ HTTP Request ตามตัวอย่างในบทความนี้

เขียนโดย noppruts (นพรุจ) · ตรวจข้อมูลล่าสุด 2026-10-10 · คู่มือทั้งหมด