मैसेजिंग API
संदेश स्टेटस API
जांचें कि API से भेजा गया संदेश अभी कतार में है, भेजा जा चुका है या फेल हो गया है। इसका इस्तेमाल यह पक्का करने के लिए करें कि ज़रूरी संदेश चले गए, और यह जानने के लिए कि कोई संदेश क्यों नहीं गया।
https://wbiztool.com/api/v1/message/status/{msg_id}/बॉडी: JSON या फॉर्म फील्ड
संदेश ID को URL में डालें: {msg_id} की जगह वह msg_id लिखें जो संदेश भेजें, ग्रुप में भेजें, कई नंबरों पर भेजें या संदेश शेड्यूल करें से मिला था। उदाहरण के लिए: https://wbiztool.com/api/v1/message/status/9817263/।
छोटा उदाहरण#
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"
}'import requests
msg_id = 9817263
response = requests.post(
f"https://wbiztool.com/api/v1/message/status/{msg_id}/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 400
if result.get("message") == "Unknown message id":
print("No message with this ID in your workspace")
elif "status_text" not in result:
print("Request failed:", result.get("message", "no message in response"))
elif result["status"] == 1:
print("Sent")
elif result["status"] == 2:
print("Failed:", result["error"])
else:
print("Status:", result["status_text"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const msgId = 9817263;
const response = await fetch(`https://wbiztool.com/api/v1/message/status/${msgId}/`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
}),
});
const result = await response.json(); // read the body even when the HTTP code is 400
if (result.message === "Unknown message id") {
console.log("No message with this ID in your workspace");
} else if (!("status_text" in result)) {
console.error("Request failed:", result.message ?? "no message in response");
} else if (result.status === 1) {
console.log("Sent");
} else if (result.status === 2) {
console.log("Failed:", result.error);
} else {
console.log("Status:", result.status_text);
}<?php
$msgId = 9817263;
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
];
$ch = curl_init("https://wbiztool.com/api/v1/message/status/{$msgId}/");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['message'] ?? '') === 'Unknown message id') {
echo 'No message with this ID in your workspace';
} elseif (!isset($result['status_text'])) {
echo 'Request failed: ' . ($result['message'] ?? 'no message in response');
} elseif ($result['status'] === 1) {
echo 'Sent';
} elseif ($result['status'] === 2) {
echo 'Failed: ' . $result['error'];
} else {
echo 'Status: ' . $result['status_text'];
}12345 और YOUR_API_KEY की जगह अपनी वैल्यू डालें। ये कहां मिलेंगी, यह जानने के लिए ऑथेंटिकेशन देखें।
रिक्वेस्ट पैरामीटर#
URL
msg_idintegerआवश्यकसंदेश ID, URL पाथ के हिस्से के रूप में। यह पूर्ण संख्या होनी चाहिए और आपकी API की वाले वर्कस्पेस की होनी चाहिए।
बॉडी
client_idintegerआवश्यकसेटिंग्स → API Keys से आपका API क्लाइंट ID।
api_keystringआवश्यकउसी पेज से आपकी API की।
आधिकारिक क्लाइंट का इस्तेमाल#
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"))क्लाइंट वही फील्ड लौटाता है जो API लौटाता है, इसलिए result["status"] संदेश की स्थिति है, सफलता का फ्लैग नहीं। ऑथेंटिकेशन एरर पर requests.HTTPError रेज़ होता है; वजह e.response.json()["message"] से पढ़ें।
रिस्पॉन्स#
एंडपॉइंट संदेश की मौजूदा स्थिति के साथ HTTP 200 लौटाता है:
{
"message": "Sent",
"status": 1,
"status_text": "Sent",
"error": ""
}
फेल हुआ संदेश:
{
"message": "Failed",
"status": 2,
"status_text": "Failed",
"error": "Phone number invalid"
}
| फील्ड | टाइप | विवरण |
|---|---|---|
status | integer | संदेश का स्टेटस कोड। नीचे दी गई टेबल देखें। |
status_text | string | स्टेटस का नाम: Created, Sent, Failed, Cancelled या Expired। |
message | string | status_text वाली ही वैल्यू। |
error | string or null | संदेश फेल होने की वजह। हमेशा मौजूद होता है; कोई एरर न हो तो खाली ("" या null) होता है। |
स्टेटस वैल्यू#
status | status_text | मतलब |
|---|---|---|
0 | Created | कतार में है या शेड्यूल है, भेजे जाने का इंतज़ार कर रहा है। |
1 | Sent | आपके WhatsApp नंबर से भेज दिया गया। |
2 | Failed | नहीं भेजा जा सका, या भेजना बीच में रुक गया। error में वजह होती है। अगर error Sending was interrupted and may have been delivered. Check WhatsApp before resending. है, तो हो सकता है प्राप्तकर्ता को संदेश पहले ही मिल चुका हो, इसलिए उसे अपने आप दोबारा न भेजें। |
3 | Cancelled | भेजे जाने से पहले कैंसल कर दिया गया, उदाहरण के लिए संदेश कैंसल करें से। |
4 | Expired | अपनी expire_after_seconds समय-सीमा से पहले नहीं भेजा जा सका। |
Sent सफलता की अंतिम स्थिति है। यह एंडपॉइंट यह नहीं बताता कि संदेश फोन पर डिलीवर हुआ या पढ़ा गया।
फेल हुए संदेशों के लिए error वैल्यू के उदाहरण: 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.
एरर#
{
"message": "Unknown message id",
"status": 0,
"status_text": "pending",
"error": "Invalid message id"
}
| संदेश | कैसे ठीक करें |
|---|---|
Unknown message id | आपकी API की वाले वर्कस्पेस में उस ID का कोई संदेश नहीं है। ID जांचें, और यह भी कि आप उसी वर्कस्पेस की की इस्तेमाल कर रहे हैं। |
Auth Error | client_id और api_key दोनों भेजें। अमान्य JSON बॉडी (जैसे आखिर में अतिरिक्त कॉमा) पर भी Auth Error मिलता है। |
Invalid Client Id | client_id को नंबर के रूप में भेजें। HTTP 403 के साथ लौटता है। |
Auth Error: invalid api key | जांचें कि की मौजूद है, डिलीट नहीं हुई है और इसी client_id की है। HTTP 400 के साथ लौटता है। |
सुझाव#
- रियल-टाइम अपडेट के लिए वेबहुक बेहतर हैं: संदेश भेजते समय
webhookपास करें, Wbiztool संदेश भेजे जाने या फेल होने पर आपको सूचना देगा, ताकि आपको बार-बार पोल न करना पड़े। कैंसल और एक्सपायर हुए संदेश वेबहुक ट्रिगर नहीं करते, इसलिए उन्हें यहां जांचें। - पोलिंग: अगर आप पोल करते हैं, तो
statusके0न रहने पर रुक जाएं। हर जांच के बीच कुछ सेकंड का अंतर रखें। - एक साथ कई संदेश: पूरे दिन के संदेश जांचने के लिए, हर ID पर यह एंडपॉइंट कॉल करने की जगह संदेश हिस्ट्री इस्तेमाल करें।
- पुराने संदेश हटा दिए जाते हैं: भेजे गए, फेल, कैंसल और एक्सपायर हुए जिन संदेशों में लगभग 90 दिनों से कोई बदलाव नहीं हुआ, वे
Unknown message idलौटाते हैं। यही उन संदेशों के साथ भी होता है जो बनने या शेड्यूल होने के 90 दिन बाद भी किसी डिसकनेक्ट या डिलीट हो चुके नंबर पर कतार में हैं। - पुराने इंटीग्रेशन: बॉडी में
msg_idके साथPOST /api/v1/msg_status/डेप्रिकेटेड है। यह वही फील्ड लौटाता है। यह query string मेंclient_id,api_keyऔरmsg_idके साथGETभी स्वीकार करता है, जिससे आपकी API की URL और लॉग में दिख जाती है। इस एंडपॉइंट पर स्विच करें।
