İçeriğe geç
Wbiztool

WhatsApp hesapları API'si

WhatsApp numarası bağlama (API)

Kendi uygulamanızdan çalışma alanınıza bir WhatsApp numarası bağlamaya başlayın. Wbiztool yeni bir WhatsApp oturumu açar ve webhook URL'nize bir QR kodu veya login_method=phone ile 8 karakterli bir kod gönderir. Bunu telefonun sahibine gösterin; QR kodunu tarar veya kodu WhatsApp'a yazar ve numara mesaj göndermeye hazır olur. QR koduyla numarayı önceden bilmeniz gerekmez: Wbiztool taramadan sonra numarayı WhatsApp'tan okur ve webhook'unuza gönderir.

Kendi numaranızı elle mi bağlıyorsunuz? WhatsApp numaranızı bağlayın rehberini izleyin.

POSThttps://wbiztool.com/api/v1/whatsapp/connect/

Gövde: JSON veya form alanları

POST /api/v1/whatsapp-client/create/ birebir aynı bir takma addır: aynı kodu çalıştırır ve aynı yanıtları döndürür. İki yol da çalışmaya devam eder.

Bağlanma nasıl çalışır#

API çağrısı bağlantıyı yalnızca başlatır. QR kodu veya telefon kodu daha sonra webhook URL'nize gelir.

  1. Bağlama API'sini çağırın

    webhook_url değerinizi ve login_method=phone ile birlikte whatsapp_number değerini gönderin. Daha önce eklediğiniz bir numarayı yeniden bağlamak için ayrıca onun whatsapp_client_id değerini gönderin. Yanıt size bir whatsapp_client_id verir. Bunu kaydedin.

  2. QR kodunu veya telefon kodunu alın

    Varsayılan login_method=qr ile webhook'unuz, qr_image içinde QR görseliyle birlikte status=qr_generated alır. Wbiztool bir tarama beklerken QR kodu birkaç saniyede bir yeniden gönderilir; bu yüzden her zaman en sonuncusunu gösterin. Kişinin taramak için yaklaşık iki dakikası vardır.

    login_method=phone ile webhook'unuz, pairing_code içinde K5EWPGY5 gibi 8 karakterli bir kodla birlikte status=pairing_code alır. Bir kez gönderilir ve yaklaşık üç dakika geçerlidir.

    Görseli veya kodu telefonun sahibine gösterin. Zamanında kullanılmazsa veya WhatsApp kodu yenilemeyi isterse not_connected alırsınız; yenisini almak için API'yi tekrar çağırın.

  3. Telefonu bağlayın

    Telefonda WhatsApp → Bağlı cihazlar → Cihaz bağla yolunu açın. QR kodunu tarayın veya Bunun yerine telefon numarasıyla bağlan (Link with phone number instead) seçeneğine dokunup 8 karakterli kodu yazın.

  4. Sonucu alın

    Numara bağlandığında webhook'unuz whatsapp_number içinde bağlanan numarayla birlikte status=connected, kod zamanında taranmadıysa veya bağlantı başarısız olduysa status=not_connected alır. connected olayı, Bağlantı durumu Connected döndürmeden birkaç saniye önce gelebilir. Önce webhook'a yanıt verin, ardından bir dakikaya kadar birkaç saniyede bir Bağlantı durumu'nu sorgulayın. Webhook işleyicinizin içinden yalnızca bir kez kontrol etmeyin.

Hızlı örnek#

curl -X POST https://wbiztool.com/api/v1/whatsapp/connect/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "webhook_url": "https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET"
  }'

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. Bunun yerine bir telefon kodu almak için "login_method": "phone" ve "whatsapp_number": "919876543210" ekleyin.

İstek parametreleri#

client_idintegerzorunlu

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

api_keystringzorunlu

Aynı sayfadaki API anahtarınız. Numara, bu anahtarın oluşturulduğu çalışma alanına eklenir.

whatsapp_numberstringYalnızca login_method=phone ile

login_method=phone ile, kodun gönderileceği tam uluslararası numara; çünkü WhatsApp kodu tam olarak o numaraya gönderir: önce ülke kodu, başta 0 olmadan, örneğin 919876543210. +, boşluklar ve tireler sizin için kaldırılır.

login_method=qr ile yok sayılır ve göndermeyebilirsiniz. Wbiztool, taramadan sonra WhatsApp'ın bildirdiği numarayı kaydeder ve connected webhook'unda gönderir.

login_methodstringisteğe bağlı

QR kodu almak için qr (varsayılan) veya sahibin WhatsApp'ta Bunun yerine telefon numarasıyla bağlan altında yazacağı 8 karakterli bir kodu almak için phone. Telefon QR kodu tarayamadığında, örneğin tek cihaz o olduğunda kullanışlıdır.

whatsapp_client_idintegeristeğe bağlı

Çalışma alanınızda olan ama bağlı olmayan bir numarayı yeniden bağlamak için onun whatsapp_client_id değerini gönderin. Aynı ID korunur, böylece diğer API çağrılarınız çalışmaya devam eder. Yeni bir numara eklemek için göndermeyin.

Kayıt, hangi numara bağlanırsa onu alır. QR kodunu farklı bir telefon tararsa veya login_method=phone ile farklı bir whatsapp_number gönderirseniz, o whatsapp_client_id bundan sonra yeni numaradan gönderim yapar; bunun için zaten kuyruğa alınmış mesajlar da dahil.

webhook_urlstringQR kodunu almak için zorunlu

QR kodunu ve bağlantı güncellemelerini alan http veya https URL'niz, en fazla 250 karakter (daha uzun URL'ler HTTP 500 ile başarısız olur). API bu alan olmadan da isteği kabul eder, ancak o zaman size hiçbir şey gönderilmez ve QR kodunu API üzerinden almanın hiçbir yolu kalmaz. Bkz. Webhook olayları.

Resmi istemcileri kullanma#

Python istemcisi sizin için /api/v1/whatsapp-client/create/ çağrısını yapar. whatsapp_number ister; QR koduyla bu değer yok sayılır.

Python
from wbiztool_client import WbizToolClient

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

result = client.create_whatsapp_client(
    whatsapp_number="919876543210",
    webhook_url="https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET",
)
print(result)

Python istemcisi, API HTTP 400 veya 403 döndürdüğünde requests.exceptions.HTTPError fırlatır; bu yüzden çağrıyı try/except içine alın.

Yanıt#

Bağlantı isteği oluşturulduğunda API HTTP 200 döndürür:

{
  "message": "Whatsapp Client Created",
  "whatsapp_client_id": 678,
  "login_method": "qr",
  "status": 1
}
AlanTürAçıklama
statusintegerBağlantı isteği oluşturulduysa 1, başarısız olduysa 0.
messagestringBaşarıda Whatsapp Client Created, aksi halde hata mesajı.
whatsapp_client_idintegerWhatsApp numarasının ID'si. Diğer API çağrılarında whatsapp_client olarak kullanın. Yalnızca başarıda bulunur.
login_methodstringBu deneme için kullanılan qr veya phone. Yalnızca başarıda bulunur.

"status": 1, numaranın bağlandığı değil, isteğin oluşturulduğu anlamına gelir. API'yi tekrar çağırmak numara biriktirmez:

  • QR koduyla ve whatsapp_client_id olmadan, QR kodlarından biri taranana kadar aynı whatsapp_client_id değerini geri alırsınız.
  • login_method=phone ile, daha önce eklenmiş ama bağlı olmayan bir numara mevcut whatsapp_client_id değerini geri alır.
  • whatsapp_client_id ile o numara yeniden bağlanır.

İlk QR kodu taranana kadar numaranın henüz bir telefon numarası yoktur: Bağlı numaraları listeleme ve Bağlantı durumu bunun için boş bir numara döndürür.

Hatalar#

MesajHTTPNasıl düzeltilir
login_method must be 'qr' or 'phone'400qr veya phone gönderin ya da hiç göndermeyin.
For login_method phone, whatsapp_number must be the full international number with country code and no leading 0, e.g. 919876543210400Numarayı 09876543210 veya 9876543210 gibi değil, ülke koduyla birlikte, örneğin 919876543210 olarak gönderin.
Auth Error200client_id ve api_key değerlerinin ikisini de gönderin. JSON gövdesi geçersiz olduğunda da döner.
Invalid Client Id403client_id değerini 12345 gibi bir tam sayı olarak gönderin.
Auth Error: invalid api key400Anahtarın mevcut olduğunu, silinmediğini ve bu client_id değerine ait olduğunu kontrol edin.
Higher Subscription Required200Planınız bu API'yi içermiyor. Planınızı yükseltin.
WhatsApp Account Limit Reached. Upgrade your account to get more whatsapp limit200Planınızın izin verdiği kadar bağlı numaranız zaten var. Birinin bağlantısını kesin veya planınızı yükseltin.
Already Connected With Given Number200login_method=phone ile, bu numara bu çalışma alanında zaten bağlı. whatsapp_client_id ile, o numara zaten bağlı. Yapılacak bir şey yok. Planınızın numara sınırına zaten ulaştıysanız bunun yerine WhatsApp Account Limit Reached alırsınız.
Invalid WhatsApp client400whatsapp_client_id mevcut değil, silinmiş veya başka bir çalışma alanına ait. Yeni bir numara eklemek için göndermeyin.

POST olmayan bir istek HTTP 200 ile boş bir nesne {} döndürür.

Webhook olayları#

Wbiztool her adımda webhook_url adresinize bir POST gönderir. Gövde JSON değil, form kodludur (application/x-www-form-urlencoded).

QR kodu hazır (tarama beklenirken birkaç saniyede bir, çoğu zaman aynı URL ile yeniden gönderilir):

status=qr_generated&whatsapp_client_id=678&qr_image=...

Telefon kodu hazır (login_method=phone ile, bir kez gönderilir):

status=pairing_code&whatsapp_client_id=678&pairing_code=K5EWPGY5

Numara bağlandı, WhatsApp'ın bildirdiği şekilde oturum açan numarayla birlikte:

status=connected&whatsapp_client_id=678&whatsapp_number=919876543210

Bağlantı başarısız, örneğin QR kodu taranmadığı veya telefon kodu zamanında girilmediği için:

status=not_connected&whatsapp_client_id=678
AlanDeğerler
statusqr_generated, pairing_code, connected veya not_connected
whatsapp_client_idAPI'nin döndürdüğü whatsapp_client_id.
whatsapp_numberYalnızca connected ile. Ülke koduyla birlikte bağlanan numara, örneğin 919876543210. Hangi numaranın tarandığını öğrenmek için kullanın. WhatsApp'ın bildirmediği nadir durumlarda boştur.
pairing_codeYalnızca pairing_code ile. WhatsApp'a yazılacak 8 karakterli kod. Olduğu gibi gösterin; iki yarı arasında boşluk veya tire olması sorun değildir.
qr_imageYalnızca qr_generated ile. Görseli base64 olarak içeren bir data: URL'si veya görselin bir https URL'si. İkisini de destekleyin. https URL'si aynı numaranın her yenilemesinde aynı kalır, arkasındaki görsel ise değişir. Görüntülerken önbelleği atlatan bir sorgu ekleyin (örneğin ?t=<timestamp>), aksi halde tarayıcı süresi dolmuş bir kodu göstermeye devam edebilir.

URL'niz herkese açık olarak erişilebilir olmalı ve birkaç saniye içinde yanıt vermelidir. Wbiztool yanıtınız için en fazla 10 saniye bekler; sunucunuz yavaşsa veya erişilemiyorsa o olay kaybolur ama bağlantı denemesi devam eder. Her HTTP durum kodu kabul edilir. Başarısız teslimatlar yeniden denenmez ve numaranın bağlantısı daha sonra kesilirse hiçbir şey gönderilmez. Bir numarayı bağlandıktan sonra takip etmek için Bağlantı durumu endpoint'ini sorgulayın.

Webhook yerine sorgulama#

Sunucunuz webhook alamıyorsa, QR kodunu almak için yine de webhook'a ihtiyacınız vardır, ancak sonuç için ona güvenmek zorunda değilsiniz. QR kodu tarandıktan sonra, Connected döndürene kadar birkaç saniyede bir whatsapp_client_id ile Bağlantı durumu endpoint'ini çağırın. Hesapları listeleme aynı bilgiyi tüm numaralarınız için gösterir.

İpuçları#

  • Yinelenen olayları ele alın: bir olayın iki kez teslim edilme ihtimaline karşı işleyicinizin birden fazla kez çalıştırılmasının güvenli olmasını sağlayın.
  • En yeni QR kodunu gösterin: her yeni qr_generated olayı geldiğinde görseli değiştirin ve https URL'sine önbelleği atlatan bir sorgu ekleyin. Eski kodlar çalışmaz.
  • Yaklaşık iki dakika içinde tarayın: bundan sonra not_connected alırsınız. Yeni bir kod için API'yi tekrar çağırın.
  • QR taramasından sonra numarayı kontrol edin: connected olayındaki whatsapp_number gerçekten bağlanan numaradır ve beklediğinizden farklı olabilir.
  • Telefon kodunu yaklaşık üç dakika içinde girin: her deneme bir kod verir. Süresi dolarsa not_connected alırsınız; API'yi tekrar çağırın.
  • 10 dakika sonra QR kodu veya telefon kodu gelmedi mi? İsteğin süresi doldu. API'yi tekrar çağırın.
  • Panelden bağlanmak daha basittir: kendi numaranızı bağlıyorsanız WhatsApp ayarları sayfasını kullanın ve kodu orada tarayın.