İçeriğe geç
Wbiztool

Mesajlaşma API'si

Birden fazla numaraya gönderme API'si

Aynı WhatsApp mesajını tek bir istekte birkaç telefon numarasına ve gruba gönderin. Bültenler, kampanyalar ve duyurular gibi küçük toplu gönderimler için kullanın.

POSThttps://wbiztool.com/api/v1/send_msg/multi/

Gövde: JSON veya form alanları

Wbiztool her alıcı için bir mesaj oluşturur ve her biri için bir msg_id döndürür; böylece durumlarını tek tek kontrol edebilirsiniz.

Hızlı örnek#

curl -X POST https://wbiztool.com/api/v1/send_msg/multi/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 0,
    "country_code": "91",
    "phone": "9876543210,9812345670,Sales Team Mumbai",
    "msg": "Our Diwali sale starts tomorrow. Get 20% off on all orders!"
  }'

12345, YOUR_API_KEY ve 678 değerlerini kendi değerlerinizle değiştirin. Bunları nerede bulacağınız için Kimlik doğrulama bölümüne bakın.

İstek parametreleri#

Kimlik doğrulama

client_idintegerzorunlu

Ayarlar → API anahtarları sayfasındaki API Client ID'niz.

api_keystringzorunlu

Aynı sayfadaki API anahtarınız.

whatsapp_clientintegerzorunlu

Gönderimin yapılacağı WhatsApp numarasının ID'si; WhatsApp ayarları sayfasında bulunur. Mesaj gönderme endpoint'inden farklı olarak bu endpoint sizin için asla numara seçmez.

Alıcılar ve mesaj

phonestringzorunlu

Virgülle ayrılmış tek bir metin içinde telefon numaraları ve grup adları; örneğin 9876543210,9812345670,Sales Team Mumbai. JSON dizisi göndermeyin. Bkz. Alıcılar nasıl okunur.

country_codestringisteğe bağlı

+ olmadan ülke telefon kodu, örneğin 91. Numara zaten bununla başlamıyorsa her telefon numarasının önüne eklenir. JSON'da sayı olarak değil, metin olarak ("91") gönderin. Sayı gönderirseniz listedeki her telefon numarası grup adı olarak değerlendirilir (is_group: true) ve bu mesajlar başarısız olur.

msg_typeintegeristeğe bağlı

0 metin (varsayılan), 1 görsel, 2 dosya veya belge.

msgstringmsg_type 0 olduğunda zorunlu

Mesaj metni. Görsel ve dosyalarda açıklama metnidir ve boş olabilir. WhatsApp biçimlendirmesi çalışır: *bold*, _italic_, ~strikethrough~. message da takma ad olarak kabul edilir.

Görseller ve dosyalar

img_urlstringmsg_type 1 olduğunda zorunlu

Görselin herkese açık http veya https URL'si.

file_urlstringmsg_type 2 olduğunda zorunlu

Dosyanın doğrudan indirilebileceği herkese açık http veya https URL'si.

file_namestringisteğe bağlı

Alıcıların gördüğü dosya adı, örneğin price-list.pdf. Küçük harflerle gönderilir, & : ? * $ ; gibi karakterler _ ile değiştirilir ve 150 karaktere kısaltılır. Göndermezseniz ad URL'den alınır.

Teslimat seçenekleri

webhookstringisteğe bağlı

Her mesaj gönderildiğinde veya başarısız olduğunda bir POST alan URL. İçerik, Mesaj gönderme ile aynıdır.

URL'den görselcURL
curl -X POST https://wbiztool.com/api/v1/send_msg/multi/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 1,
    "country_code": "91",
    "phone": "9876543210,9812345670",
    "img_url": "https://example.com/offers/diwali-sale.jpg",
    "msg": "Our Diwali sale starts tomorrow."
  }'

Alıcılar nasıl okunur#

Wbiztool phone değerini virgüllerden böler, her öğenin çevresindeki boşlukları kırpar ve ardından her öğenin ne olduğuna karar verir:

  • Yalnızca rakamlar (baştaki + veya baştaki sıfırlar sorun değildir): telefon numarası olarak değerlendirilir. Numara zaten bununla başlamıyorsa country_code eklenir; ardından numara 6 ile 15 hane arasında olmalıdır.
  • Diğer her şey: WhatsApp grup adı olarak değerlendirilir ve Gruba gönderme ile aynı şekilde bulunur.
  • Adı yalnızca rakamlardan oluşan bir grup (örneğin 2024) telefon numarası olarak değerlendirilir ve virgül içeren grup adlarına bu endpoint'ten gönderim yapılamaz. Bunlar için Gruba gönderme endpoint'ini kullanın.

Bilmeniz gereken diğer noktalar:

  • Ülke kodu eklendikten sonra çok kısa veya çok uzun olan numaralar sessizce atlanır. Yanıtta görünmezler ve msg_id almazlar.
  • Tekrarlar kaldırılmaz. İki kez listelenen bir numara iki mesaj alır.
  • Yerel bir numara country_code ile aynı rakamlarla başlıyorsa (örneğin country_code 91 ile 9123456780), kod eklenmez. Bu tür numaraları ülke kodu zaten eklenmiş olarak (919123456780) gönderin.
  • Görsel ve dosya URL'leri API'yi çağırdığınızda kontrol edilmez. Her mesaj gönderilirken indirilirler; bu yüzden bozuk bir bağlantı isteğin değil, mesajların daha sonra başarısız olmasına yol açar. Mesaj gönderme ile aynı gönderim anı kuralları geçerlidir: 16 MB'tan büyük görseller ve 64 MB'tan büyük videolar başarısız olur, WAV ve OGG ses dosyaları desteklenmez ve desteklenen bir uzantısı olmayan dosyalara (msg_type 2) .pdf eklenir. Bkz. Görsel ve dosya gönderme.

Krediler#

Herhangi bir şey oluşturulmadan önce tüm grup kalan kredilerinize göre kontrol edilir. phone içindeki boş olmayan her öğe sayılır; daha sonra atlanan öğeler de dahil. Sayı kalan kredilerinizden fazlaysa hiçbir mesaj oluşturulmaz ve şu yanıtı alırsınız:

{
  "message": "Not enough credits: 120 messages requested, 85 credits remaining",
  "status": 0
}

Kuyruğa alınmış ancak henüz gönderilmemiş mesajlar da kalan kredilerinizden düşülür. Büyük listeleri daha küçük isteklere bölün veya planınıza kredi ekleyin. Büyük kampanyalar için bunun yerine Kampanyalar sayfasından bir tablo dosyası yükleyin.

Yanıt#

Başarılı bir istek HTTP 200 döndürür:

{
  "msg_ids": [9817263, 9817264, 9817265],
  "messages": [
    { "msg_id": 9817263, "contact": "919876543210", "is_group": false },
    { "msg_id": 9817264, "contact": "919812345670", "is_group": false },
    { "msg_id": 9817265, "contact": "Sales Team Mumbai", "is_group": true }
  ],
  "message": "Successfully created 3 messages",
  "status": 1
}
AlanTürAçıklama
statusintegerEn az bir mesaj kuyruğa alındıysa 1, aksi halde 0.
messagestringBaşarıda Successfully created N messages, aksi halde hata mesajı.
msg_idstam sayı dizisiKuyruğa alınan mesajların ID'leri, phone sırasına göre. Yalnızca başarıda bulunur.
messagesdiziKuyruğa alınan her mesaj için bir nesne. Yalnızca başarıda bulunur.
messages[].msg_idintegerMesajın ID'si.
messages[].contactstringÜlke kodu uygulanmış telefon numarası veya grup adı.
messages[].is_groupbooleanÖğe grup adı olarak değerlendirildiyse true.

Atlanan numaraları bulmak için messages listesini gönderdiğiniz listeyle karşılaştırın ve telefon numarası olarak kastettiğiniz her öğe için is_group değerinin false olduğunu kontrol edin.

Hatalar#

Çoğu hata, status değeri 0 olarak HTTP 200 döndürür; bu yüzden gövdedeki status değerini her zaman kontrol edin. HTTP 400 ve 403 hataları dışında yanıtlar (başarılı olanlar dahil) Content-Type: text/html ile gönderilen JSON'dur; bu yüzden otomatik JSON algılamaya güvenmek yerine (örneğin kodsuz araçlarda) gövdeyi kendiniz ayrıştırın:

{ "message": "Invalid whatsapp client", "status": 0 }
MesajNasıl düzeltilir
Auth Errorclient_id ve api_key değerlerinin ikisini de gönderin.
Invalid Client Idclient_id değerini sayı olarak gönderin. HTTP 403 ile döner.
Auth Error: invalid api keyAnahtarın mevcut olduğunu, silinmediğini ve bu client_id değerine ait olduğunu kontrol edin. HTTP 400 ile döner.
Msg cant be nullMetin mesajları (msg_type 0) msg gerektirir.
Image Url Can't be nullmsg_type 1 için img_url gönderin.
File Url Can't be nullmsg_type 2 için file_url gönderin.
Not enough credits: … messages requested, … credits remainingDaha az alıcıya gönderin veya kredi ekleyin. Bkz. Krediler.
Invalid whatsapp clientBu whatsapp_client ID'si çalışma alanınızda değil.
No valid contacts foundphone içindeki her öğe boştu veya atlandı. Numaraların ülke koduyla birlikte 6 ile 15 hane arasında olduğunu kontrol edin.
Demo Account can not access apisNormal bir hesap kullanın.
Invalid JSON format: …JSON gövdesi geçerli değil veya form alanlarını client_id olmadan gönderdiniz.

İpuçları#

  • phone değerini metin olarak gönderin: listenizi virgüllerle birleştirin. Bir JSON dizisi {} döndürür.
  • Şimdilik Python istemcisinin send_bulk_messages yöntemini kullanmayın: listeyi bu endpoint'in yok saydığı phones alanında gönderir. Endpoint'i yukarıdaki örneklerdeki gibi doğrudan çağırın.
  • Her mesajı takip edin: messages içindeki her msg_id değerini kaydedin veya her biri gönderildiğinde ya da başarısız olduğunda bildirim almak için bir webhook iletin.
  • Numaranızı bağlı tutun: her mesaj WhatsApp numaranızdan gönderilir, bu yüzden tüm grup gönderilene kadar numaranın WhatsApp ayarları sayfasında bağlı kalması gerekir.
  • Kişiye göre farklı metin: bu endpoint herkese aynı msg değerini gönderir. Her mesajı kişiselleştirmek için her alıcı için bir kez Mesaj gönderme endpoint'ini çağırın.