Langkau ke kandungan
Wbiztool

API akaun WhatsApp

Sambung nombor WhatsApp (API)

Mula menyambungkan nombor WhatsApp ke ruang kerja anda dari aplikasi anda sendiri. Wbiztool membuka sesi WhatsApp baharu dan menghantar kod QR, atau dengan login_method=phone kod 8 aksara, ke URL webhook anda. Tunjukkan kod itu kepada pemilik telefon, mereka mengimbas kod QR atau menaip kod itu dalam WhatsApp, dan nombor itu sedia untuk menghantar mesej. Dengan kod QR, anda tidak perlu tahu nombornya terlebih dahulu: Wbiztool membacanya daripada WhatsApp selepas imbasan dan menghantarnya ke webhook anda.

Memautkan nombor anda sendiri secara manual? Ikuti Sambung nombor WhatsApp anda.

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

Body: JSON atau medan borang

POST /api/v1/whatsapp-client/create/ ialah alias yang sama: ia menjalankan kod yang sama dan memulangkan respons yang sama. Kedua-dua laluan terus berfungsi.

Cara penyambungan berfungsi#

Panggilan API hanya memulakan sambungan. Kod QR atau kod telefon tiba kemudian, di URL webhook anda.

  1. Panggil API sambung

    Hantar webhook_url anda, serta whatsapp_number dengan login_method=phone. Untuk menyambung semula nombor yang pernah anda tambah, hantar juga whatsapp_client_idnya. Respons memberikan anda whatsapp_client_id. Simpan ID ini.

  2. Terima kod QR atau kod telefon

    Dengan login_method=qr lalai, webhook anda menerima status=qr_generated dengan imej QR dalam qr_image. Kod QR dihantar semula setiap beberapa saat semasa Wbiztool menunggu imbasan, jadi sentiasa tunjukkan yang terkini. Orang itu mempunyai kira-kira dua minit untuk mengimbas.

    Dengan login_method=phone, webhook anda menerima status=pairing_code dengan kod 8 aksara dalam pairing_code, seperti K5EWPGY5. Kod ini dihantar sekali dan sah selama kira-kira tiga minit.

    Tunjukkan imej atau kod itu kepada pemilik telefon. Jika ia tidak digunakan dalam masa yang ditetapkan, atau WhatsApp meminta kod dimuat semula, anda akan menerima not_connected; panggil API sekali lagi untuk mendapatkan kod baharu.

  3. Pautkan telefon

    Di telefon, buka WhatsApp → Linked devices (Peranti dipautkan) → Link a device (Pautkan peranti). Imbas kod QR, atau ketik Link with phone number instead (Pautkan dengan nombor telefon) dan taip kod 8 aksara itu.

  4. Dapatkan hasilnya

    Webhook anda menerima status=connected dengan nombor yang dipautkan dalam whatsapp_number apabila nombor itu dipautkan, atau status=not_connected jika kod tidak diimbas dalam masa yang ditetapkan atau sambungan gagal. Peristiwa connected boleh tiba beberapa saat sebelum Status sambungan memulangkan Connected. Balas webhook dahulu, kemudian tinjau Status sambungan setiap beberapa saat sehingga satu minit. Jangan menyemaknya sekali sahaja dari dalam pengendali webhook anda.

Contoh ringkas#

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"
  }'

Gantikan 12345 dan YOUR_API_KEY dengan nilai anda sendiri. Lihat Pengesahan identiti untuk mengetahui di mana nilai ini boleh didapati. Untuk mendapatkan kod telefon, tambah "login_method": "phone" dan "whatsapp_number": "919876543210".

Parameter permintaan#

client_idintegerwajib

API Client ID anda dari Settings → API keys (Tetapan → Kunci API).

api_keystringwajib

Kunci API anda dari halaman yang sama. Nombor itu ditambah ke ruang kerja tempat kunci ini dicipta.

whatsapp_numberstringHanya dengan login_method=phone

Dengan login_method=phone, nombor antarabangsa penuh yang akan menerima kod, kerana WhatsApp menghantarnya tepat ke nombor itu: kod negara dahulu, tanpa 0 di hadapan, seperti 919876543210. +, ruang dan sengkang dibuang secara automatik.

Dengan login_method=qr, ia diabaikan dan anda boleh tidak menyertakannya. Wbiztool menyimpan nombor yang dilaporkan oleh WhatsApp selepas imbasan dan menghantarnya dalam webhook connected.

login_methodstringpilihan

qr (lalai) untuk menerima kod QR, atau phone untuk menerima kod 8 aksara yang ditaip oleh pemilik dalam WhatsApp di bawah Link with phone number instead (Pautkan dengan nombor telefon). Berguna apabila telefon tidak dapat mengimbas kod QR, contohnya apabila ia satu-satunya peranti.

whatsapp_client_idintegerpilihan

Untuk menyambung semula nombor yang ada dalam ruang kerja anda tetapi tidak disambungkan, hantar whatsapp_client_idnya. ID yang sama dikekalkan, jadi panggilan API anda yang lain terus berfungsi. Jangan sertakannya untuk menambah nombor baharu.

Rekod itu mengambil apa-apa nombor yang dipautkan. Jika telefon lain mengimbas kod QR, atau anda menghantar whatsapp_number yang berbeza dengan login_method=phone, whatsapp_client_id itu akan menghantar dari nombor baharu itu mulai saat itu, termasuk mesej yang sudah berada dalam baris gilir untuknya.

webhook_urlstringWajib untuk menerima kod QR

URL http atau https anda yang menerima kod QR dan kemas kini sambungan, sehingga 250 aksara (URL yang lebih panjang gagal dengan HTTP 500). API menerima permintaan tanpanya, tetapi tiada apa-apa akan dihantar kepada anda dan anda tidak dapat memperoleh kod QR melalui API. Lihat Peristiwa webhook.

Menggunakan klien rasmi#

Klien Python memanggil /api/v1/whatsapp-client/create/ untuk anda. Ia meminta whatsapp_number; dengan kod QR, nilai itu diabaikan.

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)

Klien Python menimbulkan requests.exceptions.HTTPError apabila API memulangkan HTTP 400 atau 403, jadi balut panggilan dalam try/except.

Respons#

Apabila permintaan sambungan dicipta, API memulangkan HTTP 200:

{
  "message": "Whatsapp Client Created",
  "whatsapp_client_id": 678,
  "login_method": "qr",
  "status": 1
}
MedanJenisPenerangan
statusinteger1 jika permintaan sambungan telah dicipta, 0 jika gagal.
messagestringWhatsapp Client Created jika berjaya, jika tidak, mesej ralat.
whatsapp_client_idintegerID nombor WhatsApp. Gunakannya sebagai whatsapp_client dalam panggilan API lain. Hanya ada jika berjaya.
login_methodstringqr atau phone, seperti yang digunakan untuk percubaan ini. Hanya ada jika berjaya.

"status": 1 bermaksud permintaan telah dicipta, bukan bermaksud nombor itu telah disambungkan. Memanggil API sekali lagi tidak menimbunkan nombor:

  • Dengan kod QR dan tanpa whatsapp_client_id, anda mendapat whatsapp_client_id yang sama sehingga salah satu kod QR-nya diimbas.
  • Dengan login_method=phone, nombor yang pernah ditambah tetapi tidak disambungkan mendapat semula whatsapp_client_id sedia adanya.
  • Dengan whatsapp_client_id, nombor itu disambungkan semula.

Sehingga kod QR pertamanya diimbas, nombor itu belum mempunyai nombor telefon: Senarai nombor disambungkan dan Status sambungan memulangkan nombor kosong untuknya.

Ralat#

MesejHTTPCara membetulkannya
login_method must be 'qr' or 'phone'400Hantar qr, phone atau jangan sertakannya.
For login_method phone, whatsapp_number must be the full international number with country code and no leading 0, e.g. 919876543210400Hantar nombor dengan kod negaranya, seperti 919876543210, bukan 09876543210 atau 9876543210.
Auth Error200Hantar kedua-dua client_id dan api_key. Juga dipulangkan apabila badan JSON tidak sah.
Invalid Client Id403Hantar client_id sebagai nombor bulat, seperti 12345.
Auth Error: invalid api key400Pastikan kunci wujud, belum dipadam dan milik client_id ini.
Higher Subscription Required200Pelan anda tidak termasuk API ini. Naik taraf pelan anda.
WhatsApp Account Limit Reached. Upgrade your account to get more whatsapp limit200Anda sudah mempunyai bilangan maksimum nombor disambungkan yang dibenarkan oleh pelan anda. Putuskan sambungan satu nombor atau naik taraf.
Already Connected With Given Number200Dengan login_method=phone, nombor ini sudah disambungkan dalam ruang kerja ini. Dengan whatsapp_client_id, nombor itu sudah disambungkan. Tiada tindakan diperlukan. Jika anda sudah mencapai had nombor pelan anda, anda akan menerima WhatsApp Account Limit Reached sebaliknya.
Invalid WhatsApp client400whatsapp_client_id tidak wujud, telah dipadam atau milik ruang kerja lain. Jangan sertakannya untuk menambah nombor baharu.

Permintaan yang bukan POST memulangkan objek kosong {} dengan HTTP 200.

Peristiwa webhook#

Wbiztool menghantar POST ke webhook_url anda pada setiap langkah. Badannya dikodkan sebagai borang (application/x-www-form-urlencoded), bukan JSON.

Kod QR sedia (dihantar semula setiap beberapa saat semasa menunggu imbasan, selalunya dengan URL yang sama):

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

Kod telefon sedia (dengan login_method=phone, dihantar sekali):

status=pairing_code&whatsapp_client_id=678&pairing_code=K5EWPGY5

Nombor disambungkan, dengan nombor yang log masuk, seperti yang dilaporkan oleh WhatsApp:

status=connected&whatsapp_client_id=678&whatsapp_number=919876543210

Sambungan gagal, contohnya kerana kod QR tidak diimbas atau kod telefon tidak dimasukkan dalam masa yang ditetapkan:

status=not_connected&whatsapp_client_id=678
MedanNilai
statusqr_generated, pairing_code, connected atau not_connected
whatsapp_client_idwhatsapp_client_id yang dipulangkan oleh API.
whatsapp_numberHanya dengan connected. Nombor yang dipautkan beserta kod negaranya, seperti 919876543210. Gunakannya untuk mengetahui nombor mana yang telah diimbas. Kosong dalam kes jarang apabila WhatsApp tidak melaporkannya.
pairing_codeHanya dengan pairing_code. Kod 8 aksara untuk ditaip dalam WhatsApp. Tunjukkan sebagaimana adanya; ruang atau sengkang di antara dua bahagiannya tidak menjadi masalah.
qr_imageHanya dengan qr_generated. Sama ada URL data: yang mengandungi imej sebagai base64, atau URL https bagi imej. Kendalikan kedua-duanya. URL https kekal sama untuk setiap penyegaran bagi nombor yang sama, manakala imej di sebaliknya berubah. Tambah pertanyaan pemintas cache semasa memaparkannya (contohnya ?t=<timestamp>), jika tidak pelayar mungkin terus memaparkan kod yang telah tamat tempoh.

URL anda mesti boleh dicapai secara awam dan sepatutnya menjawab dalam beberapa saat. Wbiztool menunggu sehingga 10 saat untuk balasan anda; jika pelayan anda perlahan atau tidak dapat dicapai, peristiwa itu hilang tetapi percubaan sambungan diteruskan. Sebarang kod status HTTP diterima. Penghantaran yang gagal tidak dicuba semula, dan tiada apa-apa dihantar jika nombor itu terputus sambungan kemudian. Untuk memantau nombor selepas ia disambungkan, tinjau Status sambungan.

Meninjau dan bukannya menggunakan webhook#

Jika pelayan anda tidak dapat menerima webhook, anda masih memerlukan webhook untuk mendapatkan kod QR, tetapi anda tidak perlu bergantung padanya untuk hasilnya. Selepas kod QR diimbas, panggil Status sambungan dengan whatsapp_client_id setiap beberapa saat sehingga ia memulangkan Connected. Senarai akaun menunjukkan perkara yang sama untuk semua nombor anda.

Petua#

  • Kendalikan peristiwa pendua: pastikan pengendali anda selamat dijalankan lebih daripada sekali, sekiranya sesuatu peristiwa dihantar dua kali.
  • Tunjukkan kod QR terbaharu: gantikan imej setiap kali peristiwa qr_generated baharu tiba, dengan menambah pertanyaan pemintas cache pada URL https. Kod yang lebih lama berhenti berfungsi.
  • Imbas dalam masa kira-kira dua minit: selepas itu anda akan menerima not_connected. Panggil API sekali lagi untuk kod baharu.
  • Semak nombor selepas imbasan QR: whatsapp_number dalam peristiwa connected ialah nombor yang benar-benar dipautkan, yang mungkin berbeza daripada yang anda jangkakan.
  • Masukkan kod telefon dalam masa kira-kira tiga minit: setiap percubaan memberikan satu kod. Jika ia tamat tempoh, anda akan menerima not_connected; panggil API sekali lagi.
  • Tiada kod QR atau kod telefon selepas 10 minit? Permintaan telah tamat tempoh. Panggil API sekali lagi.
  • Menyambung dari papan pemuka lebih mudah apabila anda memautkan nombor anda sendiri. Gunakan tetapan WhatsApp dan imbas kod di sana.