Penjelasan Endpoint Penerima Webhook
Callback URL (diisi di dashboard Meta)
https://app.aifengdcs.com/api/meta/webhook
Token verifikasi
META_VERIFY_TOKEN: string acak yang kita tentukan sendiri, hanya ada di variabel lingkungan server; saat mengatur callback di Meta, isi sama di kedua sisi.
Field langganan (pesan baru terkirim hanya setelah dicentang)
Objek Page (Halaman FB)
messages — DM halaman FB (pesan Messenger dari pelanggan)
messaging_postbacks — Postback tombol di DM FB (balasan cepat / klik menu)
feed — Komentar & balasan postingan halaman FB (untuk penggabungan percakapan)
Objek Instagram (akun profesional IG)
messages — DM Instagram (DM yang diterima akun profesional)
comments — Komentar postingan IG (untuk penggabungan percakapan)
Alur penerimaan (kerangka sudah diimplementasikan modul ini)
- Meta mengirim GET verifikasi: bila hub.verify_token cocok dengan META_VERIFY_TOKEN, server membalas hub.challenge
- Setelah itu Meta mengirim event pesan via POST (contoh JSON di bawah)
- Server memverifikasi tanda tangan X-Hub-Signature-256 dengan META_APP_SECRET
- Parse entry[].messaging[] dan changes[] (komentar), lalu tulis ke uc_meta_messages_v109
- Constraint unik message_mid membuat dedup idempoten; pengiriman ulang tidak menggandakan pesan
Contoh payload (event DM)
{
"object": "page",
"entry": [{
"id": "<PAGE_ID>",
"time": 1735689600000,
"messaging": [{
"sender": {"id": "<USER_PSID>"},
"recipient": {"id": "<PAGE_ID>"},
"timestamp": 1735689600000,
"message": {"mid": "m_abc123", "text": "Halo, tanya harga"}
}]
}]
}
⚠ Koneksi nyata ke Meta (token, go-live webhook, peninjauan izin) berstatus Human-Gate PENDING; dieksekusi hanya setelah boss menyetujui satu per satu.