NetkaInbox
Channels

เชื่อม Facebook Messenger

เซ็ตอัพ Facebook Page เพื่อรับข้อความผ่าน NetkaInbox — สร้าง app, ขอ page access token, subscribe webhook

Facebook Messenger เชื่อมผ่าน Graph API ต้องสร้าง Facebook App + ขอ Page Access Token

ก่อนเริ่ม

  • Facebook Page ที่คุณเป็น admin
  • บัญชี Facebook Developer (สร้างฟรีที่ developers.facebook.com)

1. สร้าง Facebook App

  1. ไปที่ developers.facebook.com/apps
  2. กด Create App → เลือก Business → Next
  3. ใส่ชื่อ app (เช่น "YourCompany Support")
  4. เลือก Business Portfolio ของคุณ
  5. กด Create App

2. เพิ่ม Messenger product

  1. ในหน้า app → Add products → Messenger → Set up
  2. เลื่อนไปที่ Access Tokens section
  3. กด Add or Remove Pages → เลือก Page ที่ต้องการเชื่อม
  4. Generate Token → คัดลอก Page Access Token (long string)

Page Access Token ที่ generate ตรงนี้คือ short-lived (1-2 ชม.) — สำหรับ production ใช้ long-lived token จาก Graph API Explorer หรือ system user

3. เอา token ใส่ NetkaInbox

  1. Settings → Channels → Facebook
  2. วาง Page Access Token
  3. ใส่ Page ID (หาได้ที่ Facebook Page → About)
  4. App Secret (จาก app → Settings → Basic)
  5. กด Save

4. Webhook subscription

  1. กลับมาที่ Facebook App → Messenger → Webhooks
  2. กด Add Callback URL
  3. ใส่
    • Callback URL: https://app.netkainbox.com/api/facebook/webhook
    • Verify Token: ค่าจาก Settings → Channels → Facebook → Verify token ใน NetkaInbox
  4. กด Verify and Save
  5. Subscribe fields: เลือก messages, messaging_postbacks
  6. กด Subscribe

5. ทดสอบ

  1. ส่งข้อความถึง Facebook Page ของคุณจากบัญชีอื่น
  2. ดูว่าโผล่ใน /inbox ภายใน 3 วินาที

Long-lived Page Access Token (production)

Token short-lived หมดอายุ — สำหรับ production ให้ convert เป็น long-lived

# แลก short-lived เป็น long-lived (60 วัน)
curl "https://graph.facebook.com/v18.0/oauth/access_token?
  grant_type=fb_exchange_token&
  client_id={app-id}&
  client_secret={app-secret}&
  fb_exchange_token={short-lived-token}"

จาก long-lived user token → แลกเป็น long-lived page token (never-expire):

curl "https://graph.facebook.com/v18.0/{page-id}?
  fields=access_token&
  access_token={long-lived-user-token}"

เอา access_token ที่ได้ใส่ NetkaInbox — ใช้ได้ตลอดตราบที่ password ของ admin ไม่เปลี่ยน

Troubleshooting

ไม่เห็นข้อความเข้า

  • ตรวจ Webhook subscription status (ต้องเป็น Active)
  • ตรวจ Verify Token ใน NetkaInbox vs Facebook ให้ตรงกัน
  • ดู Webhook Events → Recent deliveries ใน Facebook app

"Page is not published"

  • Facebook App ยังอยู่ใน Development mode — ส่งข้อความได้เฉพาะกับ admin/tester ของ app
  • ไปที่ App Review → Submit for review เพื่อเปิดใช้กับลูกค้าทั่วไป

ถัดไป