Skip to main content

การตั้งค่า Instagram Messaging API

คู่มือนี้จะแนะนำขั้นตอนการเชื่อมต่อ Instagram Business Account กับ MorphX เพื่อรับและตอบข้อความ Direct Message (DM) อัตโนมัติผ่าน AI Chatbot

สิ่งที่ต้องเตรียม

รายการรายละเอียด
บัญชี Instagram Professionalบัญชี Instagram ประเภท Business หรือ Creator (ไม่รองรับบัญชีส่วนตัว)
Facebook PageFacebook 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 TokenMeta App Dashboardใช้ส่งข้อความตอบกลับผ่าน Graph API
App SecretMeta App Dashboard → Settings → Basicใช้ตรวจสอบลายเซ็น Webhook
Verify Tokenคุณกำหนดเอง (สตริงลับ)ใช้ยืนยัน Webhook URL ครั้งแรก

ขั้นตอนที่ 1: เตรียม Instagram Business Account

แปลงบัญชีเป็น Professional Account

หากยังเป็นบัญชีส่วนตัว ให้แปลงเป็น Business หรือ Creator:

  1. เปิดแอป Instagram → ไปที่ โปรไฟล์
  2. แตะ เมนู (☰) → การตั้งค่าและความเป็นส่วนตัว
  3. แตะ ประเภทบัญชีและเครื่องมือเปลี่ยนเป็นบัญชีมืออาชีพ
  4. เลือก Business (แนะนำ) หรือ Creator
  5. เลือกหมวดหมู่ที่ตรงกับธุรกิจ
  6. ทำตามขั้นตอนจนเสร็จ

เชื่อมต่อ Instagram กับ Facebook Page

  1. ไปที่ Facebook Page ของคุณ
  2. คลิก การตั้งค่า (Settings) → บัญชีที่เชื่อมต่อ (Linked Accounts)
  3. เลือก Instagram แล้วคลิก เชื่อมต่อบัญชี (Connect Account)
  4. เข้าสู่ระบบด้วยบัญชี Instagram ของคุณ
  5. เลือก Business เป็นประเภทบัญชี แล้วยืนยัน
ตรวจสอบการเชื่อมต่อ

ไปที่ Facebook Page → Settings → Linked Accounts ควรเห็นบัญชี Instagram ที่เชื่อมต่อแล้ว


ขั้นตอนที่ 2: สร้าง Facebook App

หมายเหตุ

หากคุณสร้าง Facebook App ไว้แล้ว (จากการตั้งค่า Facebook Messenger) สามารถใช้ App เดียวกันได้ ไม่ต้องสร้างใหม่ ข้ามไปขั้นตอนที่ 3

สร้าง App ใหม่

  1. ไปที่ Meta for Developers
  2. เข้าสู่ระบบ → ไปที่ My Apps
  3. คลิก สร้างแอป (Create App)
  4. เลือก Use Case: "Manage messaging & content on Instagram" หรือเลือก "Other" → ประเภท "Business"
  5. กรอกข้อมูล:
    • ชื่อแอป (App Name) — เช่น "MorphX Instagram Bot"
    • อีเมลผู้ติดต่อ (App Contact Email)
    • Business Portfolio — เลือกถ้ามี
  6. คลิก สร้างแอป

จด Credentials

ไปที่ App Settings → Basic แล้วจด:

  • App ID
  • App Secret (คลิก "Show" เพื่อดู)

ขั้นตอนที่ 3: เพิ่ม Instagram Product

  1. ในแถบด้านซ้ายของ App Dashboard คลิก เพิ่มผลิตภัณฑ์ (Add Product)
  2. หาการ์ด Instagram (หรือ Messenger — Instagram Messaging เป็นส่วนหนึ่งของ Messenger Platform)
  3. คลิก ตั้งค่า (Set Up)

เชื่อมต่อ Facebook Page

  1. ในส่วน Access Tokens คลิก เพิ่มหรือลบ Pages (Add or Remove Pages)
  2. เข้าสู่ระบบ แล้วเลือก Facebook Page ที่เชื่อมต่อกับ Instagram Business Account
  3. ให้สิทธิ์ที่ร้องขอ แล้วคลิก เสร็จสิ้น (Done)

ขั้นตอนที่ 4: สร้าง Access Token

วิธี A: Page Access Token (ตั้งค่าเร็ว)

  1. ในส่วน Access Tokens คลิก Generate Token ข้างชื่อ Page
  2. คัดลอก Token (เป็น Short-lived Token)
  3. แปลงเป็น 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 ไม่ผูกกับบัญชีผู้ใช้

  1. ไปที่ Meta Business Settingsผู้ใช้System Users
  2. คลิก เพิ่ม เพื่อสร้าง System User ใหม่ (เช่น "MorphX Bot")
  3. ตั้ง Role เป็น Admin
  4. ภายใต้ เพิ่มสินทรัพย์ (Add Assets):
    • เพิ่ม Meta App พร้อมสิทธิ์ "Manage App (Full Control)"
    • เพิ่ม Facebook Page พร้อมสิทธิ์ที่เหมาะสม
  5. คลิก สร้าง Token ใหม่ (Generate New Token):
    • เลือก App จาก Dropdown
    • เปิดสิทธิ์เหล่านี้:
      • instagram_basic
      • instagram_manage_messages
      • pages_manage_metadata
      • pages_show_list
      • pages_messaging
  6. คัดลอก Token ทันที — Meta จะไม่แสดงอีก
ห้ามทำ Token หาย

System User Token จะแสดงครั้งเดียวเท่านั้น หากทำหาย ต้องสร้างใหม่ ควรเก็บไว้ใน Password Manager


ขั้นตอนที่ 5: ตั้งค่าใน MorphX Dashboard

  1. เข้าสู่ระบบ MorphX Dashboard
  2. ไปที่เมนู แพลตฟอร์ม (/dashboard/platforms)
  3. คลิกที่การ์ด Instagram → คลิก ตั้งค่า
  4. กรอก Credentials:
    • Page Access Token — Token จากขั้นตอนที่ 4
    • App Secret — จาก Settings → Basic ใน App Dashboard
    • Verify Token — สร้างสตริงลับขึ้นเอง เช่น morphx_ig_verify_2024
  5. คลิก บันทึก
  6. คัดลอก Webhook URL ที่แสดง

ขั้นตอนที่ 6: ตั้งค่า Webhook

กำหนด Webhook URL

  1. ใน App Dashboard ไปที่ Instagram (หรือ Messenger) Product
  2. ไปที่ส่วน Webhooks
  3. คลิก Edit Subscription (หรือ Subscribe to this object สำหรับ Instagram)
  4. กรอก:
    • Callback URL:
    https://<โดเมน MorphX>/api/webhook/INSTAGRAM?tenantId=<TENANT_ID>
    • Verify Token: สตริงเดียวกับที่กรอกใน MorphX
  5. คลิก Verify and Save

สมัครรับ Webhook Fields

เลือก Fields ต่อไปนี้:

Fieldหน้าที่ความจำเป็น
messagesรับข้อความ DM ที่ส่งเข้ามา✅ จำเป็น
messaging_postbacksรับเหตุการณ์ปุ่ม/Quick Reply✅ แนะนำ
messaging_seenใบตอบรับการอ่าน⬜ ไม่บังคับ
message_reactionsReaction ต่อข้อความ⬜ ไม่บังคับ

สมัครรับ 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 เท่านั้นที่ทดสอบได้

  1. เพิ่มผู้ทดสอบใน App Dashboard → Roles
  2. ให้ผู้ทดสอบส่ง DM ไปที่บัญชี Instagram Business ของคุณ
  3. ตรวจสอบว่า:
    • ✅ 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, IDStandard / Advanced
instagram_manage_messagesอ่านและตอบ DMAdvanced
pages_manage_metadataสมัครรับ WebhookAdvanced
pages_show_listแสดงรายการ PagesAdvanced
pages_messagingส่งข้อความผ่าน PageAdvanced
human_agentตอบนอก 24 ชม. (สูงสุด 7 วัน)Advanced
หมายเหตุเกี่ยวกับชื่อ Permission

Meta กำลังเปลี่ยนชื่อ Permission ใหม่ แอปใหม่อาจเห็น instagram_business_basic และ instagram_business_manage_messages แทน ทั้งสองชุดทำงานเหมือนกัน ใช้ชื่อที่ App Dashboard แสดง

ขั้นตอนส่งตรวจสอบ

  1. ยืนยัน Business:

    • Meta Business Portfolio ต้องผ่านการยืนยัน (Business Verification)
  2. ตั้ง Privacy Policy:

    • ใส่ Privacy Policy URL ใน Settings → Basic
  3. เตรียมวิดีโอสาธิต (Screencast):

    • ต้องทำแยกแต่ละ Permission ที่ขอ

    สำหรับ instagram_basic: แสดงการ Login, เชื่อมต่อบัญชี, แสดง Username/ID/รูปโปรไฟล์

    สำหรับ instagram_manage_messages: แสดงการ Login, เชื่อมต่อ Instagram, รับ DM ทดสอบ, ตอบกลับจากแพลตฟอร์ม, ผู้รับเห็นข้อความตอบกลับใน Instagram

    สำหรับ human_agent: แสดงบทสนทนาที่เก่ากว่า 24 ชม., อธิบายว่าทำไมต้องตอบนอกหน้าต่าง 24 ชม.

  4. ส่งตรวจสอบ:

    • คลิก 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 Calls200 ครั้ง/ชั่วโมง ต่อบัญชี 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

ลิงก์ที่เกี่ยวข้อง