Hantar dan terima WhatsApp daripada Python
Menerima ialah laluan dalam rangka kerja web anda yang menjawab GET pengesahan Meta dan menerima POST. Menghantar ialah permintaan HTTPS kepada Cloud API dengan phone number id dan token nombor itu. Tiada SDK daripada kami dan tiada apa yang perlu dipasang.
GET untuk pengesahan Meta dan POST untuk peristiwa. Itulah bahagian penerimaan.
Tetingkap selepas mesej pelanggan yang membolehkan teks bebas dihantar.
Ralat yang dipulangkan apabila anda menghantar teks bebas di luar tetingkap itu.
Bagaimanakah anda menerima mesej dalam Python?
Dengan dua pengendali pada satu laluan, menggunakan apa-apa rangka kerja yang sudah anda gunakan.
Pengendali GET menjawab pengesahan Meta. Ia membaca hub.mode, hub.verify_token dan hub.challenge daripada rentetan pertanyaan, menyemak token itu dengan token anda sendiri, lalu memulangkan cabaran sebagai isi mentah. Memulangkan JSON di sini ialah kesilapan paling biasa dan kegagalan berlaku tanpa pemberitahuan.
Pengendali POST menerima peristiwa. Pulangkan 200 dengan segera dan lakukan kerja selepas itu, kerana Meta menganggap respons lambat sebagai kegagalan lalu akan mencuba semula, yang bermakna mesej sama dikendalikan dua kali. Masukkan dalam baris gilir atau serahkannya kepada tugasan latar belakang, bukannya memprosesnya secara sebaris.
Mesej tiba dengan ID mesej wamid. Menyahgandakan berdasarkan ID ini wajar dilakukan dari awal, kerana percubaan semula adalah perkara biasa, bukan luar biasa.
Bagaimanakah anda menghantar?
Satu POST kepada endpoint messages Cloud API untuk phone number id, dengan bearer token.
Kedua-dua nilai datang daripada sambungan: dashboard memaparkannya, dan get_api_credentials memulangkannya jika anda lebih suka pembantu mengambilnya. Tiada apa-apa yang khusus kepada kami tentang panggilan itu, jadi apa-apa pustaka HTTP boleh digunakan dan permintaan itu kelihatan tepat seperti dokumentasi Meta sendiri.
Perkara yang berubah mengikut masa ialah isi. Dalam tempoh 24 jam selepas mesej terakhir pelanggan, anda menghantar objek teks. Di luarnya, anda menghantar objek template yang menamakan template diluluskan serta bahasanya. Klien yang hanya mengenali bentuk pertama berfungsi dengan sempurna semasa ujian tetapi gagal pada mesej pertama selepas semalaman, lalu memulangkan ralat 131047.
Apakah yang diperlukan oleh pengendali produksi selain itu?
Tiga perkara yang mudah dilangkau dan mahal untuk ditambah kemudian.
Nyahgandakan berdasarkan ID mesej kerana Meta mencuba semula. Sahkan tandatangan permintaan jika anda didedahkan secara awam, kerana sesiapa yang mengetahui URL anda boleh menghantar POST kepadanya. Selain itu, tentukan tempoh sejak kenalan terakhir menulis supaya laluan penghantaran memilih teks atau template tanpa keputusan manusia.
Tiada satu pun memerlukan rangka kerja atau pustaka. Ia hanyalah satu set, satu semakan dan satu perbandingan, dan menyediakannya sebelum pelanggan pertama ialah perbezaan antara integrasi yang berjalan senyap dengan integrasi yang menghantar amaran kepada anda.
Kesilapan biasa
- Memulangkan JSON daripada GET pengesahan dan bukannya nilai cabaran mentah.
- Memproses secara sebaris sebelum memulangkan 200. Meta mencuba semula respons lambat dan anda mengendalikan mesej dua kali.
- Menghantar teks bebas tanpa menyemak tetingkap. Ia memulangkan 131047 dan kelihatan seperti tiada apa-apa berlaku.
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 jumlah tinggi, dengan 7 hari pertama percuma.
Soalan lazim
Adakah terdapat SDK Python?
Bukan daripada kami dan anda tidak memerlukannya. API itu milik Meta, didokumentasikan oleh Meta dan boleh dicapai dengan apa-apa pustaka HTTP.
Rangka kerja apakah yang patut saya gunakan?
Apa-apa sahaja. Keperluannya ialah laluan yang menjawab GET dan menerima POST, yang disokong oleh setiap rangka kerja web Python.
Bagaimanakah saya mengelakkan mesej dikendalikan dua kali?
Nyahgandakan berdasarkan ID mesej wamid dalam payload. Meta memang mencuba semula, jadi ini dijangka, bukan kes pinggiran.
Bolehkah pasukan masih menggunakan telefon?
Ya. Coexistence memastikan aplikasi WhatsApp Business terus berfungsi pada nombor yang sama, dan pengendali anda melihat perkara yang mereka hantar sebagai peristiwa echo.
Teruskan membaca
Sedia untuk bermula?
Sediakan WhatsApp Coexistence dalam beberapa minit, bukan berbulan-bulan. Aplikasi terus berfungsi pada telefon.
Mulakan Percubaan PercumaDisahkan pada