İçeriğe geç
Wbiztool

Mesajlaşma API'si

Mesaj durumu API'si

API üzerinden gönderdiğiniz bir mesajın hâlâ kuyrukta mı olduğunu, gönderildiğini veya başarısız olduğunu kontrol edin. Önemli mesajların gittiğini doğrulamak ve gitmeyen bir mesajın nedenini öğrenmek için kullanın.

POSThttps://wbiztool.com/api/v1/message/status/{msg_id}/

Gövde: JSON veya form alanları

Mesaj ID'sini URL'ye koyun: {msg_id} yerine Mesaj gönderme, Gruba gönderme, Birden fazla numaraya gönderme veya Mesaj zamanlama tarafından döndürülen msg_id değerini yazın. Örneğin: https://wbiztool.com/api/v1/message/status/9817263/.

Hızlı örnek#

curl -X POST https://wbiztool.com/api/v1/message/status/9817263/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY"
  }'

12345 ve YOUR_API_KEY 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#

URL

msg_idintegerzorunlu

URL yolunun parçası olarak mesaj ID'si. Bir tam sayı olmalı ve API anahtarınızın çalışma alanına ait olmalıdır.

Gövde

client_idintegerzorunlu

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

api_keystringzorunlu

Aynı sayfadaki API anahtarınız.

Resmi istemciyi kullanma#

Python istemcisi bu endpoint'i sizin için çağırır.

Python
from wbiztool_client import WbizToolClient

client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)

result = client.get_message_status(msg_id=9817263)
print(result.get("status_text"), result.get("error"))

İstemci API ile aynı alanları döndürür; bu yüzden result["status"] bir başarı göstergesi değil, mesajın durumudur. Kimlik doğrulama hataları requests.HTTPError fırlatır; nedeni e.response.json()["message"] ile okuyun.

Yanıt#

Endpoint, mesajın mevcut durumuyla birlikte HTTP 200 döndürür:

{
  "message": "Sent",
  "status": 1,
  "status_text": "Sent",
  "error": ""
}

Başarısız bir mesaj:

{
  "message": "Failed",
  "status": 2,
  "status_text": "Failed",
  "error": "Phone number invalid"
}
AlanTürAçıklama
statusintegerMesajın durum kodu. Aşağıdaki tabloya bakın.
status_textstringDurumun adı: Created, Sent, Failed, Cancelled veya Expired.
messagestringstatus_text ile aynı değer.
errorstring veya nullMesajın neden başarısız olduğu. Her zaman bulunur; hata yoksa boştur ("" veya null).

Durum değerleri#

statusstatus_textAnlamı
0CreatedKuyrukta veya zamanlanmış, gönderilmeyi bekliyor.
1SentWhatsApp numaranızdan gönderildi.
2FailedGönderilemedi veya gönderim yarıda kesildi. error nedenini söyler. error değeri Sending was interrupted and may have been delivered. Check WhatsApp before resending. ise alıcıda mesaj zaten olabilir; bu yüzden otomatik olarak yeniden göndermeyin.
3CancelledGönderilmeden önce iptal edildi; örneğin Mesaj iptal etme ile.
4Expiredexpire_after_seconds süresi dolmadan gönderilemedi.

Sent son başarı durumudur. Bu endpoint mesajın telefona teslim edilip edilmediğini veya okunup okunmadığını bildirmez.

Başarısız mesajlar için error değerlerine örnekler: Phone number invalid, Group not found, Image Url Error, File Url Error, Blocked Contact, File exceeds WhatsApp size limit (…), File type not supported, Sending was interrupted and may have been delivered. Check WhatsApp before resending.

Hatalar#

{
  "message": "Unknown message id",
  "status": 0,
  "status_text": "pending",
  "error": "Invalid message id"
}
MesajNasıl düzeltilir
Unknown message idAPI anahtarınızın çalışma alanında bu ID'ye sahip bir mesaj yok. ID'yi ve aynı çalışma alanından bir anahtar kullandığınızı kontrol edin.
Auth Errorclient_id ve api_key değerlerinin ikisini de gönderin. Geçersiz bir JSON gövdesi (örneğin sondaki bir virgül) de Auth Error döndürür.
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.

İpuçları#

  • Anlık güncellemeler için webhook'ları tercih edin: mesajı gönderirken webhook iletin; Wbiztool mesaj gönderildiğinde veya başarısız olduğunda sizi bilgilendirir, böylece sürekli sorgulama yapmanız gerekmez. İptal edilen ve süresi dolan mesajlar webhook tetiklemez; bunları burada kontrol edin.
  • Sorgulama: sorgulama yapıyorsanız, status artık 0 olmadığında durun. Kontroller arasında birkaç saniye bırakın.
  • Aynı anda çok sayıda mesaj: bir günün tüm mesajlarını kontrol etmek için her ID için bu endpoint'i çağırmak yerine Mesaj geçmişi endpoint'ini kullanın.
  • Eski mesajlar temizlenir: yaklaşık 90 gündür değişmeyen gönderilmiş, başarısız, iptal edilmiş ve süresi dolmuş mesajlar Unknown message id döndürür. Bağlantısı kesik veya silinmiş bir numarada, oluşturulduktan veya zamanlandıktan 90 gün sonra hâlâ kuyrukta olan mesajlar da öyle.
  • Eski entegrasyonlar: gövdede msg_id ile POST /api/v1/msg_status/ kullanımı artık önerilmiyor. Aynı alanları döndürür. Sorgu dizesinde client_id, api_key ve msg_id ile GET de kabul eder; bu da API anahtarınızı URL'lerde ve günlüklerde açığa çıkarır. Bu endpoint'e geçin.