การตั้งค่า Facebook Messenger
คู่มือนี้จะแนะนำขั้นตอนการเชื่อมต่อ Facebook Page ของคุณกับ MorphX ผ่าน Messenger Platform ตั้งแต่การสร้าง Meta App จนถึงการส่ง App Review เพื่อใช้งานจริง
สิ่งที่ต้องเตรียม
| รายการ | รายละเอียด |
|---|---|
| บัญชี Facebook ส่วนตัว | จำเป็นสำหรับสมัคร Meta Developer |
| Facebook Page | Page ที่คุณเป็น Admin (สร้างใหม่หรือใช้ที่มีอยู่) |
| HTTPS Domain | โดเมนที่รองรับ SSL สำหรับ Webhook |
Credentials ที่ต้องใช้
MorphX ต้องการ Credentials 3 รายการ:
| Credential | ที่มา | การใช้งาน |
|---|---|---|
| Page Access Token | Meta App Dashboard → Messenger Settings | ใช้ส่งข้อความตอบกลับผ่าน Send API |
| App Secret | Meta App Dashboard → Settings → Basic | ใช้ตรวจสอบลายเซ็น Webhook (X-Hub-Signature-256) |
| Verify Token | คุณกำหนดเอง (สตริงลับ) | ใช้ยืนยัน Webhook URL ครั้งแรก |
ขั้นตอนที่ 1: สร้างบัญชี Meta Developer
- ไปที่ Meta for Developers
- คลิก เริ่มต้นใช้งาน (Get Started)
- เข้าสู่ระบบด้วยบัญชี Facebook ส่วนตัวของคุณ
- ยอมรับ เงื่อนไขแพลตฟอร์ม Meta และ นโยบายนักพัฒนา
- ยืนยันตัวตนด้วยหมายเลขโทรศัพท์หรืออีเมล
- คุณจะเข้าสู่หน้า My Apps ที่ developers.facebook.com/apps
ขั้นตอนที่ 2: สร้าง Facebook App
- จากหน้า My Apps คลิก สร้างแอป (Create App)
- เลือกประเภทแอป Business (ให้สิทธิ์เข้าถึง Messenger Platform APIs, Webhook, Page Management)
- กรอกข้อมูล:
- ชื่อแอป (Display Name) — เช่น "MorphX Bot"
- อีเมลผู้ติดต่อ (App Contact Email)
- บัญชีธุรกิจ (Business Account) — เชื่อมกับ Meta Business Account ถ้ามี (ไม่บังคับ)
- คลิก สร้างแอป (Create App) แล้วยืนยันความปลอดภัย
จด App ID และ App Secret ไว้ จากเมนู Settings → Basic ค่า App Secret เป็นหนึ่งใน Credentials ที่ MorphX ต้องการ
ขั้นตอนที่ 3: เพิ่ม Messenger Product
- ในแถบด้านซ้ายของ App Dashboard คลิก เพิ่มผลิตภัณฑ์ (Add Product)
- หาการ์ด Messenger แล้วคลิก ตั้งค่า (Set Up)
- เมนู Messenger → Settings จะปรากฏในแถบด้านซ้ายภายใต้ "PRODUCTS"
ขั้นตอนที่ 4: เชื่อมต่อ Facebook Page
Facebook Page ทำหน้าที่เป็นตัวตนของบอท — ผู้ใช้จะส่งข้อความถึงบอทผ่าน Page นี้
หากมี Page อยู่แล้ว
- ใน Messenger → Settings เลื่อนไปที่ส่วน Access Tokens
- คลิก เพิ่มหรือลบ Pages (Add or Remove Pages)
- เข้าสู่ระบบด้วยบัญชี Facebook ที่เป็น Admin ของ Page
- เลือก Page ที่ต้องการเชื่อมต่อ แล้วคลิก เสร็จสิ้น (Done)
หากต้องสร้าง Page ใหม่
- ไปที่ facebook.com/pages/create
- ตั้งชื่อ Page, เลือกหมวดหมู่ และใส่คำอธิบาย (ไม่บังคับ)
- คลิก สร้าง Page (Create Page)
- กลับไปที่ App Dashboard แล้วเพิ่ม Page ใหม่นี้ตามขั้นตอนด้านบน
บัญชี Facebook ที่เพิ่ม Page ต้องมีสิทธิ์ Admin บน Page นั้น
ขั้นตอนที่ 5: สร้าง Page Access Token
- ใน Messenger → Settings ส่วน Access Tokens หา Page ที่เชื่อมต่อไว้
- คลิก Generate Token ข้างชื่อ Page
- คัดลอก Token ทันที — Token นี้จะไม่ถูกบันทึกในหน้า UI
Token ที่ได้จากขั้นตอนนี้เป็น Short-lived Token สำหรับ Production ควรแปลงเป็น Long-lived Token
แปลงเป็น Long-lived Token
# ขั้นตอนที่ 1: แปลง Short-lived User Token เป็น 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 (ไม่มีวันหมดอายุ) จาก Long-lived User Token
curl -X GET "https://graph.facebook.com/v21.0/me/accounts?\
access_token={LONG_LIVED_USER_TOKEN}"
Page Access Token ที่ได้จากขั้นตอนที่ 2 จะไม่มีวันหมดอายุ ตราบใดที่ผู้ใช้ที่สร้างยังเป็น Admin ของ Page
ขั้นตอนที่ 6: ตั้งค่าใน MorphX Dashboard
- เข้าสู่ระบบ MorphX Dashboard
- ไปที่เมนู แพลตฟอร์ม (
/dashboard/platforms) - คลิกที่การ์ด Facebook → คลิก ตั้งค่า
- กรอก Credentials ทั้ง 3 รายการ:
- Page Access Token — Token ที่ได้จากขั้นตอนที่ 5
- App Secret — จาก Settings → Basic ใน App Dashboard
- Verify Token — สร้างสตริงลับขึ้นเอง เช่น
morphx_verify_abc123
- คลิก บันทึก
- ระบบจะแสดง Webhook URL — คัดลอกไว้สำหรับขั้นตอนถัดไป
Verify Token คือสตริงที่คุณกำหนดเอง ใช้ครั้งเดียวตอนยืนยัน Webhook ควรเป็นสตริงที่คาดเดาไม่ได้ เช่น:
morphx_fb_verify_2024_xK9mP2nQ
ขั้นตอนที่ 7: ตั้งค่า Webhook URL
-
ใน App Dashboard ไปที่ Messenger → Settings
-
เลื่อนไปที่ส่วน Webhooks
-
คลิก Add Callback URL (หรือ Edit Callback URL หากตั้งค่าไว้แล้ว)
-
กรอกข้อมูล:
- Callback URL: Webhook URL ที่คัดลอกจาก MorphX Dashboard
https://<โดเมน MorphX>/api/webhook/FACEBOOK?tenantId=<TENANT_ID>- Verify Token: สตริงเดียวกับที่กรอกใน MorphX Dashboard
-
คลิก Verify and Save
กระบวนการยืนยัน
เมื่อคลิก Verify and Save:
- Meta จะส่ง GET Request ไปยัง Callback URL พร้อม Query Parameters:
hub.mode=subscribehub.verify_token=<Verify Token ที่คุณกำหนด>hub.challenge=<สตริงสุ่ม>
- MorphX จะตรวจสอบว่า Verify Token ตรงกัน แล้วตอบกลับด้วยค่า
hub.challenge - หากทุกอย่างถูกต้อง Webhook จะถูกบันทึกสำเร็จ
- Webhook URL ต้องเข้าถึงได้จากอินเทอร์เน็ตผ่าน HTTPS
- สำหรับการพัฒนาในเครื่อง ใช้บริการ Tunnel เช่น ngrok เพื่อสร้าง HTTPS URL ชั่วคราว
ขั้นตอนที่ 8: สมัครรับ Page Events
หลังยืนยัน Webhook สำเร็จ ต้องเลือก Events ที่ต้องการรับ:
- ใน Messenger → Settings ส่วน Webhooks คลิก Add Subscriptions สำหรับ Page ที่เชื่อมต่อ
- เลือก Subscription Fields ต่อไปนี้:
| Field | หน้าที่ | ความจำเป็น |
|---|---|---|
| messages | รับข้อความที่ผู้ใช้ส่งมา | ✅ จำเป็น |
| messaging_postbacks | รับเหตุการณ์เมื่อผู้ใช้กดปุ่ม Postback | ✅ แนะนำ |
| messaging_optins | รับเหตุการณ์ Opt-in จากผู้ใช้ | ⬜ ไม่บังคับ |
| message_deliveries | ใบตอบรับการส่งข้อความ | ⬜ ไม่บังคับ |
| message_reads | ใบตอบรับการอ่านข้อความ | ⬜ ไม่บังคับ |
- คลิก Save
ต้องสมัครรับ messages เป็นอย่างน้อย MorphX ใช้ Field นี้ในการรับข้อความจากผู้ใช้และประมวลผลผ่านระบบ RAG
ขั้นตอนที่ 9: ทดสอบในโหมด Development
ในขณะที่แอปยังอยู่ในโหมด Development เฉพาะ Admin, Developer และ Tester เท่านั้นที่สามารถส่งข้อความถึงบอทได้
เพิ่มผู้ทดสอบ
- ใน App Dashboard ไปที่ Roles (หรือ App Roles)
- เพิ่มบัญชี Facebook เป็น Tester หรือ Developer
- ผู้ที่ถูกเพิ่มต้องยอมรับคำเชิญก่อนจึงจะทดสอบได้
ทดสอบการทำงาน
- เปิด Facebook Page ของคุณใน Messenger
- ส่งข้อความจากบัญชี Tester
- ตรวจสอบว่า:
- ✅ ข้อความถูกส่งไปยัง Webhook (ตรวจสอบจาก Server log)
- ✅ ลายเซ็น (Signature) ผ่านการตรวจสอบ
- ✅ บอทประมวลผลข้อความผ่านระบบ RAG
- ✅ ข้อความตอบกลับถูกส่งกลับไปยังผู้ใช้
ใช้ Graph API Explorer เพื่อทดสอบ API Calls ด้วยตนเองได้ที่ https://developers.facebook.com/tools/explorer/
ขั้นตอนที่ 10: App Review — เปิดใช้งานจริง
จนกว่าแอปจะผ่าน App Review เฉพาะ Admin, Developer และ Tester เท่านั้นที่ใช้งานได้ ผู้ใช้ทั่วไปจะได้รับข้อผิดพลาด
สิทธิ์ (Permissions) ที่ต้องขอ
| สิทธิ์ | หน้าที่ | ระดับ |
|---|---|---|
| pages_messaging | ส่งและรับข้อความในฐานะ Page | Advanced Access |
| pages_manage_metadata | สมัครรับ Webhook Events ของ Page | Advanced Access |
| pages_show_list | แสดงรายการ Pages ที่ผู้ใช้จัดการ | Advanced Access |
| pages_read_engagement | อ่านข้อมูล Engagement ของ Page | Advanced Access |
ขั้นตอนส่ง App Review
-
ตั้ง Privacy Policy:
- ไปที่ Settings → Basic → Privacy Policy URL
- ใส่ URL ของนโยบายความเป็นส่วนตัวที่เข้าถึงได้สาธารณะ
- ต้องระบุ: ข้อมูลที่เก็บ, วิธีใช้งาน, วิธีลบข้อมูล
-
ส่งคำขอแต่ละ Permission:
- ไปที่ App Review → Permissions and Features
- คลิก Request Advanced Access สำหรับแต่ละ Permission
- สำหรับแต่ละ Permission ต้องเตรียม:
- คำอธิบาย ว่าแอปใช้สิทธิ์นี้ทำอะไรและทำไม
- วิดีโอสาธิต (Screencast) แสดงการใช้งานจริง
-
ข้อกำหนดวิดีโอสาธิต (Screencast):
- แสดงแอปพลิเคชันจริง ไม่ใช่ Mock
- สาธิตขั้นตอนทั้งหมด: ผู้ใช้ส่งข้อความ → บอทรับ → บอทตอบกลับ
- แสดงว่าแต่ละ Permission ถูกใช้งานจริง
- ความละเอียดต้องอ่านข้อความได้ชัดเจน
- ใช้ข้อมูลจริง ไม่ใช้ข้อมูล Dummy
-
เตรียม Test User (แนะนำ):
- สร้าง Test User ใน Roles → Test Users
- ใส่ Login Credentials ในหมายเหตุการส่ง
-
ส่งตรวจสอบ:
- คลิก Submit for Review
- ระยะเวลาตรวจสอบ: 2-7 วันทำการ
สาเหตุที่มักถูกปฏิเสธ
| สาเหตุ | วิธีแก้ไข |
|---|---|
| ขอ Permission มากเกินไป | ขอเฉพาะ Permission ที่ใช้งานจริง |
| วิดีโอสาธิตไม่ชัดเจน | บันทึกให้ชัด แสดงทุก Permission |
| Privacy Policy มีปัญหา | ตรวจสอบว่า URL เข้าถึงได้ ไม่มี Login wall |
| แอปไม่ทำงาน | Webhook ต้อง Live ขณะส่ง Review |
นโยบายหน้าต่างการส่งข้อความ 24 ชั่วโมง
Facebook บังคับใช้ หน้าต่างการส่งข้อความ 24 ชั่วโมง:
- บอทส่งข้อความถึงผู้ใช้ได้เฉพาะภายใน 24 ชั่วโมงหลังจากผู้ใช้ส่งข้อความล่าสุด
- หลัง 24 ชั่วโมง ไม่สามารถส่งข้อความได้ ยกเว้นใช้ Message Tag (จำกัดเฉพาะกรณีเฉพาะ)
- Message Tag ที่ใช้ได้:
- Post-Purchase Update — แจ้งสถานะคำสั่งซื้อ/การจัดส่ง
- Confirmed Event Update — แจ้งเตือนกิจกรรมที่ลงทะเบียน
- Account Update — แจ้งเรื่องความปลอดภัยบัญชี/การเรียกเก็บเงิน
ห้ามใช้ Message Tag สำหรับข้อความโปรโมชั่นหรือการตลาด การฝ่าฝืนอาจทำให้แอปถูกระงับ
Checklist สรุป
| ขั้นตอน | สิ่งที่ต้องทำ | ตำแหน่ง |
|---|---|---|
| 1 | สมัครบัญชี Meta Developer | developers.facebook.com |
| 2 | สร้าง Facebook App (ประเภท Business) | My Apps → Create App |
| 3 | เพิ่ม Messenger Product | App Dashboard → Add Product |
| 4 | เชื่อมต่อ Facebook Page | Messenger → Settings → Access Tokens |
| 5 | สร้าง Page Access Token | Messenger → Settings → Generate Token |
| 6 | จด App Secret | Settings → Basic → App Secret |
| 7 | กำหนด Verify Token | สร้างสตริงลับขึ้นเอง |
| 8 | กรอก Credentials ใน MorphX | MorphX Dashboard → แพลตฟอร์ม |
| 9 | ตั้งค่า Webhook URL | Messenger → Settings → Webhooks |
| 10 | สมัครรับ Events (messages) | Messenger → Settings → Webhooks |
| 11 | ทดสอบด้วยบัญชี Tester | ส่งข้อความใน Messenger |
| 12 | ตั้ง Privacy Policy URL | Settings → Basic |
| 13 | ส่ง App Review | App Review → Permissions |
| 14 | เปิด Live Mode | Settings → Basic → App Mode |
การแก้ปัญหา
Webhook Verification ล้มเหลว
- ตรวจสอบว่า Verify Token ใน MorphX Dashboard ตรงกับที่กรอกใน Meta App Dashboard
- ตรวจสอบว่า Webhook URL เข้าถึงได้จากอินเทอร์เน็ต
- ตรวจสอบว่าเซิร์ฟเวอร์ MorphX ทำงานอยู่
ผู้ใช้ทั่วไปส่งข้อความไม่ได้
- แอปต้องผ่าน App Review ก่อน
- ตรวจสอบว่าแอปอยู่ใน Live Mode (ไม่ใช่ Development)
- ตรวจสอบว่าได้รับ pages_messaging Permission แล้ว
บอทไม่ตอบกลับ
- ตรวจสอบว่า Page Access Token ยังใช้ได้ (ไม่หมดอายุ)
- ตรวจสอบว่าสมัครรับ Event messages แล้ว
- ตรวจสอบ Server log สำหรับข้อผิดพลาด
ลายเซ็น (Signature) ไม่ผ่าน
- ตรวจสอบว่า App Secret ถูกต้อง
- App Secret จะเปลี่ยนเมื่อ Reset — ต้องอัปเดตใน MorphX Dashboard ด้วย