Python'dan WhatsApp mesajı gönderme ve alma
Alma, web çerçevenizde Meta'nın doğrulama GET isteğini yanıtlayan ve POST isteklerini kabul eden bir rotadır. Gönderme ise numaranın phone number id alanı ve token'ıyla Cloud API'ye yapılan bir HTTPS isteğidir. Bizim SDK'mız yok, kurulacak bir şey de yok.
Meta'nın doğrulaması için bir GET ve olaylar için bir POST. Alma tarafı budur.
Müşteri mesajından sonra serbest metin gönderilebilen pencere.
Bu pencerenin dışında serbest metin gönderdiğinizde dönen hata.
Python'da mesajları nasıl alırsınız?
Zaten kullandığınız çerçeve ne olursa olsun, tek bir rotada iki işleyiciyle.
GET işleyicisi Meta'nın doğrulamasını yanıtlar. Sorgu dizesinden hub.mode, hub.verify_token ve hub.challenge değerlerini okur, token'ı kendi token'ınızla karşılaştırır ve challenge değerini ham gövde olarak döndürür. Burada JSON döndürmek en yaygın hatadır ve hata sessizce gerçekleşir.
POST işleyicisi olayları alır. 200 durumunu hızla döndürün ve işi sonrasında yapın; çünkü Meta yavaş yanıtı hata sayar ve yeniden dener. Bu da aynı mesajı iki kez ele almanız anlamına gelir. İşleme işlemini satır içinde yapmak yerine kuyruğa alın veya bir arka plan göreviyle çalıştırın.
Mesajlar wamid mesaj kimliğiyle gelir. Yeniden denemeler olağan olduğu için baştan bu kimliğe göre yinelenenleri ayıklamaya değer.
Nasıl gönderirsiniz?
phone number id için Cloud API messages uç noktasına bearer token ile tek bir POST gönderilir.
Her iki değer de bağlantıdan gelir: panel bunları gösterir, siz isterseniz bir asistanın get_api_credentials ile almasını sağlayabilirsiniz. Çağrının bize özgü hiçbir yanı yoktur; bu nedenle herhangi bir HTTP kitaplığı çalışır ve istek, Meta'nın kendi belgelerindekiyle tamamen aynı görünür.
Zamanlamaya göre değişen şey gövdedir. Müşterinin son mesajından sonraki 24 saat içinde text nesnesi gönderirsiniz. Bu sürenin dışında, onaylanmış bir şablonun adını ve dilini içeren template nesnesi gönderirsiniz. Yalnızca ilk biçimi bilen bir istemci testte kusursuz çalışır, ancak ilk gece gelen mesajda başarısız olup 131047 hata kodunu döndürür.
Üretim işleyicisinin bundan başka neye ihtiyacı var?
Atlanması kolay, sonradan eklenmesi pahalı üç şey.
Meta yeniden denediği için mesaj kimliğine göre yinelenenleri ayıklayın. Herkese açık durumdaysanız istek imzasını doğrulayın; aksi hâlde URL'nizi öğrenen herkes buraya istek gönderebilir. Ayrıca kişinin en son ne kadar süre önce yazdığına göre dallanın; böylece gönderme yolu, bir insanın karar vermesine gerek kalmadan text veya template seçer.
Bunların hiçbiri çerçeve ya da kitaplık gerektirmez. Bunlar bir küme, bir kontrol ve bir karşılaştırmadan ibarettir. İlk istemciden önce yerleştirilmeleri, sessizce çalışan bir entegrasyonla sizi uyarı yağmuruna tutan bir entegrasyon arasındaki farktır.
Yaygın hatalar
- Doğrulama GET'inde ham challenge değeri yerine JSON döndürmek.
- 200 durumunu döndürmeden önce işlemi satır içinde yapmak. Meta yavaş yanıtları yeniden dener ve mesajı iki kez ele alırsınız.
- Pencereyi kontrol etmeden serbest metin göndermek. 131047 döner ve hiçbir şey olmamış gibi görünür.
Numarayı easycoexistence.com üzerinden bağlayın, webhook hedefini rotanıza ayarlayın ve phone number id ile token'ı panelden alın. Numara başına aylık US$ 9'dan başlar, toplu kullanımda US$ 2'ye düşer; ilk 7 gün ücretsizdir.
Sık sorulan sorular
Python SDK'sı var mı?
Bizden yok ve ihtiyacınız da yok. API Meta'nın API'sidir, belgeleri Meta sağlar ve herhangi bir HTTP kitaplığıyla erişilebilir.
Hangi çerçeveyi kullanmalıyım?
Herhangi birini. Gereken, GET'i yanıtlayan ve POST'u kabul eden bir rotadır; bunu her Python web çerçevesi yapar.
Bir mesajı iki kez ele almaktan nasıl kaçınırım?
payload içindeki wamid mesaj kimliğine göre yinelenenleri ayıklayın. Meta tasarım gereği yeniden dener; bu nedenle beklenmedik bir durum değildir.
Ekip telefonu kullanmaya devam edebilir mi?
Evet. Coexistence, WhatsApp Business uygulamasının aynı numarada çalışmasını sürdürür ve işleyiciniz ekibin gönderdiği mesajları yankı olayı olarak görür.
Okumaya devam edin
Başlamaya hazır mısınız?
WhatsApp Coexistence'ı aylar değil, dakikalar içinde kurun. Uygulama telefonda çalışmaya devam eder.
Ücretsiz denemeyi başlatınDoğrulama tarihi