easyCoexistence
Log masukMulakan percubaan percuma
Meta Tech Provider

Hantar dan terima WhatsApp daripada Node.js

Menerima ialah laluan yang menjawab GET pengesahan Meta dan menerima POST. Menghantar ialah panggilan fetch ke Cloud API dengan phone number id dan token nombor itu. Tiada SDK daripada kami dan tiada apa-apa untuk dipasang.

2 handlers

GET untuk pengesahan Meta dan POST untuk peristiwa.

24 hours

Tetingkap selepas mesej pelanggan yang membolehkan teks bebas dihantar.

131047

Ralat yang dipulangkan apabila teks bebas dihantar di luar tetingkap itu.

Bagaimanakah anda menerima mesej dalam Node?

Satu laluan dengan dua kaedah, dalam Express, Fastify, pengendali laluan Next atau pelayan biasa.

GET menjawab pengesahan Meta: baca hub.mode, hub.verify_token dan hub.challenge daripada pertanyaan, bandingkan token itu dengan token anda, kemudian pulangkan cabaran sebagai teks biasa. Memulangkannya sebagai JSON ialah kesilapan biasa dan menghasilkan endpoint yang tidak pernah menerima apa-apa walaupun kelihatan betul.

POST menerima peristiwa. Balas 200 serta-merta dan proses selepas itu. Meta akan mencuba semula apa-apa yang lambat, dan pengendali yang menyiapkan kerja sebelum memberi respons akan melihat mesej yang sama lebih daripada sekali. Khususnya pada pelayan tanpa pelayan, memulangkan respons dahulu dan memasukkan kerja ke dalam baris gilir mengelakkan cold start daripada menghasilkan pendua.

Bagaimanakah anda menghantar?

Panggilan fetch ke messages endpoint Cloud API untuk phone number id, dengan token sebagai pengepala bearer.

Tiada apa-apa yang khusus kepada kami, jadi permintaan itu sepadan tepat dengan dokumentasi Meta sendiri dan tiada pembalut untuk dipelajari atau terikat dengannya. Kedua-dua nilai terdapat dalam dashboard, dan get_api_credentials memulangkannya melalui penyambung MCP jika pembantu sedang membuat penyambungan.

Badan permintaan bergantung pada masa. Dalam tempoh 24 jam selepas mesej masuk terakhir pelanggan, hantar objek teks. Selepas tempoh itu, hantar objek template dengan nama template dan bahasa yang diluluskan. Kod yang hanya menghantar teks lulus setiap ujian dan gagal apabila mesej pertama tiba pada waktu malam.

Apakah yang berbeza pada pelayan tanpa pelayan?

Dua perkara, dan kedua-duanya berkaitan fungsi yang tamat sebelum kerja selesai.

Memulangkan 200 kemudian meneruskan pemprosesan tidak akan bertahan jika fungsi membeku sebaik sahaja memberikan respons. Gunakan apa sahaja yang disediakan oleh platform anda untuk memastikan kerja terus hidup selepas respons, atau masukkan payload ke dalam baris gilir dan biarkan fungsi berasingan mengendalikannya. Meta hanya memerlukan pengesahan dengan cepat, bukan kerja itu disiapkan.

Cold start juga menjadikan respons lambat lebih berkemungkinan, lalu menyebabkan lebih banyak percubaan semula dan pendua. Dedup melalui message id wamid bukan pilihan dalam bentuk ini, sebaliknya itulah yang menjadikannya boleh dipercayai.

Kesilapan biasa

  • Memulangkan cabaran sebagai JSON dan bukannya badan mentah.
  • Menyiapkan kerja sebelum memberi respons 200. Pada pelayan tanpa pelayan, fungsi mungkin membeku sebaik sahaja memberikan respons.
  • Tidak melakukan dedup. Meta mencuba semula mengikut reka bentuk, dan pendua ialah perkara biasa, bukan kes terpencil.
Menggunakan EasyCoexistence untuk ini

Sambungkan nombor di easycoexistence.com, tetapkan destinasi webhook kepada laluan anda, kemudian baca phone number id dan token daripada dashboard. Daripada US$ 9 sebulan bagi setiap nombor, turun kepada US$ 2 pada volum tinggi, dengan 7 hari pertama percuma.

Soalan lazim

Adakah saya memerlukan pustaka?

Tidak. Laluan dan fetch sudah mencukupi, dan panggilan itu sepadan tepat dengan dokumentasi Meta.

Adakah ini berfungsi pada Vercel atau Lambda?

Ya, dengan batasan biasa pelayan tanpa pelayan: beri pengesahan dahulu, kemudian proses melalui baris gilir atau mekanisme latar dan bukannya secara sebaris.

Bagaimanakah saya mengesahkan bahawa permintaan datang daripada Meta?

Semak pengepala tandatangan terhadap rahsia aplikasi anda. Wajar dilakukan sebaik sahaja endpoint tersedia untuk umum.

Bolehkah saya menggunakan TypeScript?

Ya. Tiada apa-apa daripada kami yang perlu ditaip, kerana payload itu milik Meta dan didokumentasikan oleh Meta.

Teruskan membaca

Sedia untuk bermula?

Sediakan WhatsApp Coexistence dalam beberapa minit, bukan berbulan-bulan. Aplikasi terus berfungsi pada telefon.

Mulakan Percubaan Percuma

Disahkan pada

Hantar WhatsApp daripada Node.js