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.
https://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.
Panggil API sambung
Hantar
webhook_urlanda, sertawhatsapp_numberdenganlogin_method=phone. Untuk menyambung semula nombor yang pernah anda tambah, hantar jugawhatsapp_client_idnya. Respons memberikan andawhatsapp_client_id. Simpan ID ini.Terima kod QR atau kod telefon
Dengan
login_method=qrlalai, webhook anda menerimastatus=qr_generateddengan imej QR dalamqr_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 menerimastatus=pairing_codedengan kod 8 aksara dalampairing_code, sepertiK5EWPGY5. 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.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.
Dapatkan hasilnya
Webhook anda menerima
status=connecteddengan nombor yang dipautkan dalamwhatsapp_numberapabila nombor itu dipautkan, ataustatus=not_connectedjika kod tidak diimbas dalam masa yang ditetapkan atau sambungan gagal. Peristiwaconnectedboleh tiba beberapa saat sebelum Status sambungan memulangkanConnected. 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"
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/whatsapp/connect/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"webhook_url": "https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET",
},
timeout=30,
)
result = response.json() # read the body even when the HTTP code is 400 or 403
if result.get("status") == 1:
print("Waiting for QR code, whatsapp_client_id", result["whatsapp_client_id"])
else:
print("Failed:", result.get("message"))// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/whatsapp/connect/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
webhook_url: "https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET",
}),
});
const result = await response.json(); // read the body even when the HTTP code is 400 or 403
if (result.status === 1) {
console.log("Waiting for QR code, whatsapp_client_id", result.whatsapp_client_id);
} else {
console.error("Failed:", result.message);
}<?php
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'webhook_url' => 'https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET',
];
$ch = curl_init('https://wbiztool.com/api/v1/whatsapp/connect/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['status'] ?? 0) === 1) {
echo 'Waiting for QR code, whatsapp_client_id ' . $result['whatsapp_client_id'];
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}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_idintegerwajibAPI Client ID anda dari Settings → API keys (Tetapan → Kunci API).
api_keystringwajibKunci API anda dari halaman yang sama. Nombor itu ditambah ke ruang kerja tempat kunci ini dicipta.
whatsapp_numberstringHanya dengan login_method=phoneDengan
login_method=phone, nombor antarabangsa penuh yang akan menerima kod, kerana WhatsApp menghantarnya tepat ke nombor itu: kod negara dahulu, tanpa0di hadapan, seperti919876543210.+, 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 webhookconnected.login_methodstringpilihanqr(lalai) untuk menerima kod QR, atauphoneuntuk 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_idintegerpilihanUntuk 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_numberyang berbeza denganlogin_method=phone,whatsapp_client_iditu akan menghantar dari nombor baharu itu mulai saat itu, termasuk mesej yang sudah berada dalam baris gilir untuknya.webhook_urlstringWajib untuk menerima kod QRURL
httpatauhttpsanda yang menerima kod QR dan kemas kini sambungan, sehingga 250 aksara (URL yang lebih panjang gagal dengan HTTP500). 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.
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
}
| Medan | Jenis | Penerangan |
|---|---|---|
status | integer | 1 jika permintaan sambungan telah dicipta, 0 jika gagal. |
message | string | Whatsapp Client Created jika berjaya, jika tidak, mesej ralat. |
whatsapp_client_id | integer | ID nombor WhatsApp. Gunakannya sebagai whatsapp_client dalam panggilan API lain. Hanya ada jika berjaya. |
login_method | string | qr 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 mendapatwhatsapp_client_idyang sama sehingga salah satu kod QR-nya diimbas. - Dengan
login_method=phone, nombor yang pernah ditambah tetapi tidak disambungkan mendapat semulawhatsapp_client_idsedia 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#
| Mesej | HTTP | Cara membetulkannya |
|---|---|---|
login_method must be 'qr' or 'phone' | 400 | Hantar 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. 919876543210 | 400 | Hantar nombor dengan kod negaranya, seperti 919876543210, bukan 09876543210 atau 9876543210. |
Auth Error | 200 | Hantar kedua-dua client_id dan api_key. Juga dipulangkan apabila badan JSON tidak sah. |
Invalid Client Id | 403 | Hantar client_id sebagai nombor bulat, seperti 12345. |
Auth Error: invalid api key | 400 | Pastikan kunci wujud, belum dipadam dan milik client_id ini. |
Higher Subscription Required | 200 | Pelan anda tidak termasuk API ini. Naik taraf pelan anda. |
WhatsApp Account Limit Reached. Upgrade your account to get more whatsapp limit | 200 | Anda sudah mempunyai bilangan maksimum nombor disambungkan yang dibenarkan oleh pelan anda. Putuskan sambungan satu nombor atau naik taraf. |
Already Connected With Given Number | 200 | Dengan 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 client | 400 | whatsapp_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
| Medan | Nilai |
|---|---|
status | qr_generated, pairing_code, connected atau not_connected |
whatsapp_client_id | whatsapp_client_id yang dipulangkan oleh API. |
whatsapp_number | Hanya 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_code | Hanya dengan pairing_code. Kod 8 aksara untuk ditaip dalam WhatsApp. Tunjukkan sebagaimana adanya; ruang atau sengkang di antara dua bahagiannya tidak menjadi masalah. |
qr_image | Hanya 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_generatedbaharu tiba, dengan menambah pertanyaan pemintas cache pada URLhttps. 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_numberdalam peristiwaconnectedialah 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.
