การตั้งค่า Instagram Messaging API
คู่มือนี้จะแนะนำขั้นตอนการเชื่อมต่อ Instagram Business Account กับ MorphX เพื่อรับและตอบข้อความ Direct Message (DM) อัตโนมัติผ่าน AI Chatbot
สิ่งที่ต้องเตรียม
| รายการ | รายละเอียด |
|---|---|
| บัญชี Instagram Professional | บัญชี Instagram ประเภท Business หรือ Creator (ไม่รองรับบัญชีส่วนตัว) |
| Facebook Page | Facebook Page ที่เชื่อมต่อกับ Instagram Professional Account |
| สิทธิ์ Admin | ต้องเป็น Admin ของทั้ง Facebook Page และ Instagram Account |
| บัญชี Meta Developer | สำหรับสร้าง Facebook App |
| HTTPS Domain | โดเมนที่รองรับ SSL สำหรับ Webhook |
Instagram Messaging API ใช้งานได้เฉพาะบัญชี Instagram Professional (Business หรือ Creator) ที่เชื่อมต่อกับ Facebook Page แล้วเท่านั้น บัญชีส่วนตัวไม่สามารถใช้งานได้
Credentials ที่ต้องใช้
MorphX ต้องการ Credentials 3 รายการ (เหมือนกับ Facebook Messenger):
| Credential | ที่มา | การใช้งาน |
|---|---|---|
| Page Access Token | Meta App Dashboard | ใช้ส่งข้อความตอบกลับผ่าน Graph API |
| App Secret | Meta App Dashboard → Settings → Basic | ใช้ตรวจสอบลายเซ็น Webhook |
| Verify Token | คุณกำหนดเอง (สตริงลับ) | ใช้ยืนยัน Webhook URL ครั้งแรก |
ขั้นตอนที่ 1: เตรียม Instagram Business Account
แปลงบัญชีเป็น Professional Account
หากยังเป็นบัญชีส่วนตัว ให้แปลงเป็น Business หรือ Creator:
- เปิดแอป Instagram → ไปที่ โปรไฟล์
- แตะ เมนู (☰) → การตั้งค่าและความเป็นส่วนตัว
- แตะ ประเภทบัญชีและเครื่องมือ → เปลี่ยนเป็นบัญชีมืออาชีพ
- เลือก Business (แนะนำ) หรือ Creator
- เลือกหมวดหมู่ที่ตรงกับธุรกิจ
- ทำตามขั้นตอนจนเสร็จ
เชื่อมต่อ Instagram กับ Facebook Page
- ไปที่ Facebook Page ของคุณ
- คลิก การตั้งค่า (Settings) → บัญชีที่เชื่อมต่อ (Linked Accounts)
- เลือก Instagram แล้วคลิก เชื่อมต่อบัญชี (Connect Account)
- เข้าสู่ระบบด้วยบัญชี Instagram ของคุณ
- เลือก Business เป็นประเภทบัญชี แล้วยืนยัน
ไปที่ Facebook Page → Settings → Linked Accounts ควรเห็นบัญชี Instagram ที่เชื่อมต่อแล้ว
ขั้นตอนที่ 2: สร้าง Facebook App
หากคุณสร้าง Facebook App ไว้แล้ว (จากการตั้งค่า Facebook Messenger) สามารถใช้ App เดียวกันได้ ไม่ต้องสร้างใหม่ ข้ามไปขั้นตอนที่ 3
สร้าง App ใหม่
- ไปที่ Meta for Developers
- เข้าสู่ระบบ → ไปที่ My Apps
- คลิก สร้างแอป (Create App)
- เลือก Use Case: "Manage messaging & content on Instagram" หรือเลือก "Other" → ประเภท "Business"
- กรอกข้อมูล:
- ชื่อแอป (App Name) — เช่น "MorphX Instagram Bot"
- อีเมลผู้ติดต่อ (App Contact Email)
- Business Portfolio — เลือกถ้ามี
- คลิก สร้างแอป
จด Credentials
ไปที่ App Settings → Basic แล้วจด:
- App ID
- App Secret (คลิก "Show" เพื่อดู)
ขั้นตอนที่ 3: เพิ่ม Instagram Product
- ในแถบด้านซ้ายของ App Dashboard คลิก เพิ่มผลิตภัณฑ์ (Add Product)
- หาการ์ด Instagram (หรือ Messenger — Instagram Messaging เป็นส่วนหนึ่งของ Messenger Platform)
- คลิก ตั้งค่า (Set Up)
เชื่อมต่อ Facebook Page
- ในส่วน Access Tokens คลิก เพิ่มหรือลบ Pages (Add or Remove Pages)
- เข้าสู่ระบบ แล้วเลือก Facebook Page ที่เชื่อมต่อกับ Instagram Business Account
- ให้สิทธิ์ที่ร้องขอ แล้วคลิก เสร็จสิ้น (Done)
ขั้นตอนที่ 4: สร้าง Access Token
วิธี A: Page Access Token (ตั้งค่าเร็ว)
- ในส่วน Access Tokens คลิก Generate Token ข้างชื่อ Page
- คัดลอก Token (เป็น Short-lived Token)
- แปลงเป็น Long-lived Token:
# ขั้นตอนที่ 1: แปลง Short-lived → Long-lived User Token
curl -X GET "https://graph.facebook.com/v21.0/oauth/access_token?\
grant_type=fb_exchange_token&\
client_id={APP_ID}&\
client_secret={APP_SECRET}&\
fb_exchange_token={SHORT_LIVED_TOKEN}"
# ขั้นตอนที่ 2: ดึง Page Access Token (ไม่หมดอายุ)
curl -X GET "https://graph.facebook.com/v21.0/me/accounts?\
access_token={LONG_LIVED_USER_TOKEN}"
วิธี B: System User Token (แนะนำสำหรับ Production)
วิธีนี้ปลอดภัยกว่าเพราะ Token ไม่ผูกกับบัญชีผู้ใช้
- ไปที่ Meta Business Settings → ผู้ใช้ → System Users
- คลิก เพิ่ม เพื่อสร้าง System User ใหม่ (เช่น "MorphX Bot")
- ตั้ง Role เป็น Admin
- ภายใต้ เพิ่มสินทรัพย์ (Add Assets):
- เพิ่ม Meta App พร้อมสิทธิ์ "Manage App (Full Control)"
- เพิ่ม Facebook Page พร้อมสิทธิ์ที่เหมาะสม
- คลิก สร้าง Token ใหม่ (Generate New Token):
- เลือก App จาก Dropdown
- เปิดสิทธิ์เหล่านี้:
instagram_basicinstagram_manage_messagespages_manage_metadatapages_show_listpages_messaging
- คัดลอก Token ทันที — Meta จะไม่แสดงอีก
System User Token จะแสดงครั้งเดียวเท่านั้น หากทำหาย ต้องสร้างใหม่ ควรเก็บไว้ใน Password Manager
ขั้นตอนที่ 5: ตั้งค่าใน MorphX Dashboard
- เข้าสู่ระบบ MorphX Dashboard
- ไปที่เมนู แพลตฟอร์ม (
/dashboard/platforms) - คลิกที่การ์ด Instagram → คลิก ตั้งค่า
- กรอก Credentials:
- Page Access Token — Token จากขั้นตอนที่ 4
- App Secret — จาก Settings → Basic ใน App Dashboard
- Verify Token — สร้างสตริงลับขึ้นเอง เช่น
morphx_ig_verify_2024
- คลิก บันทึก
- คัดลอก Webhook URL ที่แสดง
ขั้นตอนที่ 6: ตั้งค่า Webhook
กำหนด Webhook URL
- ใน App Dashboard ไปที่ Instagram (หรือ Messenger) Product
- ไปที่ส่วน Webhooks
- คลิก Edit Subscription (หรือ Subscribe to this object สำหรับ Instagram)
- กรอก:
- Callback URL:
https://<โดเมน MorphX>/api/webhook/INSTAGRAM?tenantId=<TENANT_ID>- Verify Token: สตริงเดียวกับที่กรอกใน MorphX
- คลิก Verify and Save
สมัครรับ Webhook Fields
เลือก Fields ต่อไปนี้:
| Field | หน้าที่ | ความจำเป็น |
|---|---|---|
| messages | รับข้อความ DM ที่ส่งเข้ามา | ✅ จำเป็น |
| messaging_postbacks | รับเหตุการณ์ปุ่ม/Quick Reply | ✅ แนะนำ |
| messaging_seen | ใบตอบรับการอ่าน | ⬜ ไม่บังคับ |
| message_reactions | Reaction ต่อข้อความ | ⬜ ไม่บังคับ |
สมัครรับ Events สำหรับ Page (สำคัญ!)
คุณต้องสมัครรับ Events สำหรับ Page แยกต่างหาก มิฉะนั้นจะไม่ได้รับ Webhook Events
ใช้ Graph API เพื่อสมัครรับ:
curl -X POST "https://graph.facebook.com/v21.0/{PAGE_ID}/subscribed_apps?\
subscribed_fields=messages&\
access_token={PAGE_ACCESS_TOKEN}"
เปลี่ยน {PAGE_ID} เป็น ID ของ Facebook Page และ {PAGE_ACCESS_TOKEN} เป็น Token ที่ได้
ขั้นตอนที่ 7: ทดสอบการทำงาน
ในโหมด Development เฉพาะ Admin/Developer/Tester ของ App เท่านั้นที่ทดสอบได้
- เพิ่มผู้ทดสอบใน App Dashboard → Roles
- ให้ผู้ทดสอบส่ง DM ไปที่บัญชี Instagram Business ของคุณ
- ตรวจสอบว่า:
- ✅ Webhook ได้รับข้อความ (ตรวจจาก Server log)
- ✅ บอทตอบกลับผ่าน DM
- ✅ ข้อความตอบกลับแสดงถูกต้อง
รูปแบบ Webhook Payload
เมื่อผู้ใช้ส่ง DM มา Meta จะส่ง POST request ในรูปแบบนี้:
{
"object": "instagram",
"entry": [
{
"id": "<INSTAGRAM_BUSINESS_ACCOUNT_ID>",
"time": 1569262486134,
"messaging": [
{
"sender": {
"id": "<IGSID>"
},
"recipient": {
"id": "<INSTAGRAM_BUSINESS_ACCOUNT_ID>"
},
"timestamp": 1569262485349,
"message": {
"mid": "<MESSAGE_ID>",
"text": "สวัสดีครับ"
}
}
]
}
]
}
สังเกตว่า object จะเป็น "instagram" (แตกต่างจาก Facebook ที่เป็น "page")
ขั้นตอนที่ 8: App Review
สิทธิ์ที่ต้องขอ
| สิทธิ์ | หน้าที่ | ระดับ |
|---|---|---|
instagram_basic | อ่านข้อมูลโปรไฟล์, Username, ID | Standard / Advanced |
instagram_manage_messages | อ่านและตอบ DM | Advanced |
pages_manage_metadata | สมัครรับ Webhook | Advanced |
pages_show_list | แสดงรายการ Pages | Advanced |
pages_messaging | ส่งข้อความผ่าน Page | Advanced |
human_agent | ตอบนอก 24 ชม. (สูงสุด 7 วัน) | Advanced |
Meta กำลังเปลี่ยนชื่อ Permission ใหม่ แอปใหม่อาจเห็น instagram_business_basic และ instagram_business_manage_messages แทน ทั้งสองชุดทำงานเหมือนกัน ใช้ชื่อที่ App Dashboard แสดง
ขั้นตอนส่งตรวจสอบ
-
ยืนยัน Business:
- Meta Business Portfolio ต้องผ่านการยืนยัน (Business Verification)
-
ตั้ง Privacy Policy:
- ใส่ Privacy Policy URL ใน Settings → Basic
-
เตรียมวิดีโอสาธิต (Screencast):
- ต้องทำแยกแต่ละ Permission ที่ขอ
สำหรับ
instagram_basic: แสดงการ Login, เชื่อมต่อบัญชี, แสดง Username/ID/รูปโปรไฟล์สำหรับ
instagram_manage_messages: แสดงการ Login, เชื่อมต่อ Instagram, รับ DM ทดสอบ, ตอบกลับจากแพลตฟอร์ม, ผู้รับเห็นข้อความตอบกลับใน Instagramสำหรับ
human_agent: แสดงบทสนทนาที่เก่ากว่า 24 ชม., อธิบายว่าทำไมต้องตอบนอกหน้าต่าง 24 ชม. -
ส่งตรวจสอบ:
- คลิก Submit for Review
- ระยะเวลา: 2-6 สัปดาห์
นโยบายหน้าต่างการส่งข้อความ
หน้าต่างมาตรฐาน 24 ชั่วโมง
หน้าต่างเปิดเมื่อผู้ใช้:
- ส่ง DM มา
- คอมเมนต์ในโพสต์/Reel
- ตอบกลับ Story
- กล่าวถึง (@mention) บัญชีของคุณ
- คลิกโฆษณา Click-to-Instagram DM
ภายในหน้าต่าง:
- ส่งข้อความได้ไม่จำกัด (ภายใต้ Rate Limit)
- หน้าต่างรีเซ็ตทุกครั้งที่ผู้ใช้ตอบกลับ
หน้าต่าง Human Agent 7 วัน
- ด้วยสิทธิ์
human_agentเจ้าหน้าที่ (ไม่ใช่บอท) สามารถตอบได้ถึง 7 วัน - ใช้ได้เฉพาะการแก้ไขปัญหาของลูกค้า ไม่ใช่การตลาด
Rate Limits
| รายการ | ข้อจำกัด |
|---|---|
| API Calls | 200 ครั้ง/ชั่วโมง ต่อบัญชี Instagram |
| Send API | สูงสุด 100 ครั้ง/วินาที สำหรับ Professional Account |
| ข้อความ Text | สูงสุด 1,000 bytes (UTF-8) |
| ไฟล์รูปภาพ | PNG, JPEG, GIF — สูงสุด 8MB |
| ไฟล์วิดีโอ | MP4, MOV — สูงสุด 25MB |
Checklist สรุป
| ขั้นตอน | สิ่งที่ต้องทำ |
|---|---|
| 1 | แปลงเป็น Instagram Business หรือ Creator Account |
| 2 | เชื่อมต่อ Instagram กับ Facebook Page (ต้องเป็น Admin) |
| 3 | สมัคร Meta Developer Account |
| 4 | สร้าง Facebook App (หรือใช้ App เดียวกับ Facebook Messenger) |
| 5 | เพิ่ม Instagram/Messenger Product |
| 6 | เชื่อมต่อ Facebook Page ใน App |
| 7 | สร้าง Access Token (Page Token หรือ System User Token) |
| 8 | กรอก Credentials ใน MorphX Dashboard |
| 9 | ตั้งค่า Webhook URL ใน Meta Developer Portal |
| 10 | สมัครรับ Webhook Fields (messages, messaging_postbacks) |
| 11 | สมัครรับ Events สำหรับ Page ผ่าน API |
| 12 | ทดสอบด้วยบัญชี Tester ในโหมด Development |
| 13 | ส่ง App Review พร้อมวิดีโอสาธิตและ Privacy Policy |
| 14 | เปิด Live Mode หลังผ่าน Review |
การแก้ปัญหา
ไม่ได้รับ Webhook Events
- ตรวจสอบว่าสมัครรับ Events สำหรับ Page แล้ว (ขั้นตอน สมัครรับ Events สำหรับ Page)
- ตรวจสอบว่าสมัครรับ Field messages แล้ว
- ตรวจสอบว่า Instagram Account เชื่อมต่อกับ Facebook Page ที่ถูกต้อง
บอทตอบกลับไม่ได้
- ตรวจสอบว่า Token มีสิทธิ์
instagram_manage_messages - ตรวจสอบว่าอยู่ภายในหน้าต่าง 24 ชั่วโมง
- ตรวจสอบว่า Page Access Token ยังใช้ได้
Webhook Verification ล้มเหลว
- ตรวจสอบว่า Verify Token ใน MorphX ตรงกับที่กรอกใน Meta
- ตรวจสอบว่า URL ใช้ HTTPS และเข้าถึงได้
- ตรวจสอบว่า
tenantIdใน URL ถูกต้อง
ผู้ใช้ทั่วไปส่งข้อความไม่ได้
- ต้องผ่าน App Review ก่อน
- ต้องอยู่ใน Live Mode
- ต้องได้รับ Advanced Access สำหรับ
instagram_manage_messages