मुख्य सामग्री पर जाएं
Wbiztool

WhatsApp अकाउंट API

WhatsApp नंबर कनेक्ट करें (API)

अपने ऐप से किसी WhatsApp नंबर को अपने वर्कस्पेस से कनेक्ट करना शुरू करें। Wbiztool एक नया WhatsApp सेशन खोलता है और QR कोड आपके वेबहुक URL पर भेजता है। इसे फोन के मालिक को दिखाएं, वे WhatsApp से इसे स्कैन करें, और नंबर संदेश भेजने के लिए तैयार हो जाता है।

अपना नंबर खुद हाथ से लिंक कर रहे हैं? अपना WhatsApp नंबर कनेक्ट करें फॉलो करें।

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

बॉडी: JSON या फॉर्म फील्ड

POST /api/v1/whatsapp-client/create/ इसका बिल्कुल एक जैसा दूसरा नाम (alias) है: यह वही कोड चलाता है और वही रिस्पॉन्स लौटाता है। दोनों पाथ काम करते रहेंगे।

कनेक्ट करना कैसे काम करता है#

API कॉल केवल कनेक्शन शुरू करता है। QR कोड बाद में आपके वेबहुक URL पर आता है।

  1. कनेक्ट API कॉल करें

    फोन नंबर और अपना webhook_url भेजें। रिस्पॉन्स में आपको एक whatsapp_client_id मिलता है। इसे सेव करें।

  2. QR कोड प्राप्त करें

    आपके वेबहुक को status=qr_generated मिलता है, जिसमें qr_image में QR इमेज होती है। यह इमेज उस व्यक्ति को दिखाएं जिसका फोन है। जब तक Wbiztool स्कैन का इंतज़ार करता है, QR कोड हर कुछ सेकंड में दोबारा भेजा जाता है, इसलिए हमेशा सबसे नया कोड दिखाएं। व्यक्ति के पास स्कैन करने के लिए लगभग दो मिनट होते हैं। उसके बाद, या अगर WhatsApp कोड रीलोड करने को कहता है, तो आपको not_connected मिलता है; नया कोड पाने के लिए API फिर से कॉल करें।

  3. WhatsApp से स्कैन करें

    फोन पर WhatsApp → Linked devices (लिंक किए गए डिवाइस) → Link a device (डिवाइस लिंक करें) खोलें और कोड स्कैन करें।

  4. नतीजा पाएं

    नंबर लिंक हो जाने पर आपके वेबहुक को status=connected मिलता है, या अगर कोड समय पर स्कैन नहीं हुआ या कनेक्शन फेल हो गया तो status=not_connected मिलता है। connected इवेंट कनेक्शन स्टेटस के Connected लौटाने से कुछ सेकंड पहले आ सकता है। पहले वेबहुक का जवाब दें, फिर एक मिनट तक हर कुछ सेकंड में कनेक्शन स्टेटस पोल करें। इसे अपने वेबहुक हैंडलर के अंदर से सिर्फ एक बार न जांचें।

छोटा उदाहरण#

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

12345 और YOUR_API_KEY की जगह अपनी वैल्यू डालें। ये कहां मिलेंगी, यह जानने के लिए ऑथेंटिकेशन देखें।

रिक्वेस्ट पैरामीटर#

client_idintegerआवश्यक

सेटिंग्स → API Keys से आपका API क्लाइंट ID।

api_keystringआवश्यक

उसी पेज से आपकी API की। नंबर उसी वर्कस्पेस में जोड़ा जाता है जिसमें यह की बनाई गई थी।

whatsapp_numberstringआवश्यक

कनेक्ट करने वाला WhatsApp नंबर, कंट्री कोड के साथ, जैसे 919876543210। यह ठीक वैसे ही सेव होता है जैसे आप भेजते हैं (20 अक्षरों तक), इसलिए केवल अंक भेजें, बिना +, स्पेस या डैश के। इससे लंबी वैल्यू HTTP 500 के साथ फेल होती हैं। अलग तरह से लिखा गया वही नंबर एक अलग नंबर माना जाता है।

webhook_urlstringQR कोड पाने के लिए ज़रूरी

आपका http या https URL, जिस पर QR कोड और कनेक्शन अपडेट आते हैं, 250 अक्षरों तक (इससे लंबे URL HTTP 500 के साथ फेल होते हैं)। API इसके बिना भी रिक्वेस्ट स्वीकार कर लेता है, लेकिन तब आपको कुछ नहीं भेजा जाता और API के ज़रिए QR कोड पाने का आपके पास कोई तरीका नहीं रहता। वेबहुक इवेंट देखें।

आधिकारिक क्लाइंट का इस्तेमाल#

Python क्लाइंट आपके लिए /api/v1/whatsapp-client/create/ कॉल करता है।

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)

जब API HTTP 400 या 403 लौटाता है, तो Python क्लाइंट requests.exceptions.HTTPError रेज़ करता है, इसलिए कॉल को try/except में रखें।

रिस्पॉन्स#

कनेक्शन रिक्वेस्ट बन जाने पर API HTTP 200 लौटाता है:

{
  "message": "Whatsapp Client Created",
  "whatsapp_client_id": 678,
  "status": 1
}
फील्डटाइपविवरण
statusintegerकनेक्शन रिक्वेस्ट बनी हो तो 1, फेल हुई हो तो 0
messagestringसफल होने पर Whatsapp Client Created, वरना एरर।
whatsapp_client_idintegerWhatsApp नंबर का ID। दूसरे API कॉल में इसे whatsapp_client के रूप में इस्तेमाल करें। केवल सफल होने पर मौजूद होता है।

"status": 1 का मतलब है कि रिक्वेस्ट बन गई है, यह नहीं कि नंबर कनेक्ट हो गया है। अगर आप किसी ऐसे नंबर के लिए API दोबारा कॉल करते हैं जो पहले जोड़ा गया था लेकिन कनेक्टेड नहीं है, तो आपको वही whatsapp_client_id वापस मिलता है और कनेक्ट करने की नई कोशिश शुरू होती है।

एरर#

संदेशHTTPकैसे ठीक करें
whatsapp_number cant be null200whatsapp_number भेजें। यह सबसे पहले जांचा जाता है, इसलिए JSON बॉडी गलत होने पर भी यही संदेश आता है।
Auth Error200client_id और api_key दोनों भेजें।
Invalid Client Id403client_id को पूर्ण संख्या के रूप में भेजें, जैसे 12345
Auth Error: invalid api key400जांचें कि की मौजूद है, डिलीट नहीं हुई है और इसी client_id की है।
Higher Subscription Required200आपके प्लान में यह API शामिल नहीं है। अपना प्लान अपग्रेड करें
WhatsApp Account Limit Reached. Upgrade your account to get more whatsapp limit200आपके प्लान में जितने कनेक्टेड नंबरों की अनुमति है, उतने नंबर पहले से हैं। एक नंबर डिसकनेक्ट करें या अपग्रेड करें।
Already Connected With Given Number200यह नंबर इस वर्कस्पेस में पहले से कनेक्टेड है। कुछ करने की ज़रूरत नहीं है। अगर आप पहले से अपने प्लान की नंबर सीमा पर हैं, तो पहले से कनेक्टेड नंबर के लिए भी आपको इसकी जगह WhatsApp Account Limit Reached मिलता है।

जो रिक्वेस्ट POST नहीं है, वह HTTP 200 के साथ खाली ऑब्जेक्ट {} लौटाती है।

अगर उसी अकाउंट मालिक ने यह नंबर पहले किसी दूसरे वर्कस्पेस में जोड़ा है, तो रिक्वेस्ट HTTP 500 के साथ फेल हो सकती है। जिस वर्कस्पेस में चाहिए, वहां WhatsApp सेटिंग्स से नंबर कनेक्ट करें, या सपोर्ट से संपर्क करें

वेबहुक इवेंट#

Wbiztool हर स्टेप पर आपके webhook_url पर POST भेजता है। बॉडी फॉर्म-एन्कोडेड (application/x-www-form-urlencoded) होती है, JSON नहीं।

QR कोड तैयार (स्कैन का इंतज़ार करते समय हर कुछ सेकंड में दोबारा भेजा जाता है, अक्सर उसी URL के साथ):

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

नंबर कनेक्ट हुआ (एक ही कनेक्शन के लिए एक से ज़्यादा बार भेजा जा सकता है):

status=connected&whatsapp_client_id=678

कनेक्शन फेल हुआ, उदाहरण के लिए क्योंकि QR कोड समय पर स्कैन नहीं हुआ:

status=not_connected&whatsapp_client_id=678
फील्डवैल्यू
statusqr_generated, connected या not_connected
whatsapp_client_idAPI से लौटाया गया whatsapp_client_id
qr_imageकेवल qr_generated के साथ। या तो base64 इमेज वाला data: URL, या इमेज का https URL। दोनों को संभालें। एक ही नंबर के हर रिफ्रेश के लिए https URL वही रहता है, जबकि उसके पीछे की इमेज बदल जाती है। इसे दिखाते समय cache-busting query जोड़ें (जैसे ?t=<timestamp>), वरना ब्राउज़र एक्सपायर हो चुका कोड दिखाता रह सकता है।

आपका URL सार्वजनिक रूप से पहुंच योग्य होना चाहिए और कुछ सेकंड में जवाब देना चाहिए। Wbiztool बिना किसी टाइमआउट के आपके जवाब का इंतज़ार करता है। अगर आपके सर्वर तक नहीं पहुंचा जा सकता, तो नंबर के कनेक्टेड के रूप में सेव होने से पहले ही कनेक्शन की कोशिश रुक सकती है। कोई भी HTTP स्टेटस कोड स्वीकार होता है। फेल हुई डिलीवरी दोबारा नहीं भेजी जाती, और बाद में नंबर डिसकनेक्ट होने पर कुछ नहीं भेजा जाता। कनेक्ट होने के बाद नंबर पर नज़र रखने के लिए कनेक्शन स्टेटस को बार-बार कॉल (poll) करें।

वेबहुक के बजाय पोलिंग#

अगर आपका सर्वर वेबहुक प्राप्त नहीं कर सकता, तब भी QR कोड पाने के लिए वेबहुक ज़रूरी है, लेकिन नतीजे के लिए आपको उस पर निर्भर रहने की ज़रूरत नहीं है। QR कोड स्कैन होने के बाद, whatsapp_client_id के साथ हर कुछ सेकंड में कनेक्शन स्टेटस कॉल करें, जब तक वह Connected न लौटाए। अकाउंट की सूची आपके सभी नंबरों के लिए यही जानकारी दिखाता है।

सुझाव#

  • डुप्लिकेट इवेंट संभालें: connected दो बार आ सकता है। अपने हैंडलर को ऐसा बनाएं कि उसे एक से ज़्यादा बार चलाना सुरक्षित हो।
  • सबसे नया QR कोड दिखाएं: हर बार नया qr_generated इवेंट आने पर इमेज बदल दें, और https URL में cache-busting query जोड़ें। पुराने कोड काम करना बंद कर देते हैं।
  • लगभग दो मिनट के अंदर स्कैन करें: उसके बाद आपको not_connected मिलता है। नए कोड के लिए API फिर से कॉल करें।
  • 10 मिनट बाद भी QR कोड नहीं आया? रिक्वेस्ट एक्सपायर हो गई है। API दोबारा कॉल करें।
  • डैशबोर्ड से कनेक्ट करना आसान है जब आप अपना ही नंबर लिंक कर रहे हों। WhatsApp सेटिंग्स खोलें और वहीं कोड स्कैन करें।