मैसेजिंग API
संदेश कैंसल करें API
ऐसा WhatsApp संदेश कैंसल करें जो अभी तक भेजा नहीं गया है। अपॉइंटमेंट कैंसल होने के बाद शेड्यूल किया गया रिमाइंडर रोकने, या गलती से कतार में डाला गया संदेश वापस लेने के लिए इसका इस्तेमाल करें।
https://wbiztool.com/api/v1/cancel_msg/बॉडी: JSON या फॉर्म फील्ड
आप कोई भी ऐसा संदेश कैंसल कर सकते हैं जो अभी भेजे जाने का इंतज़ार कर रहा है (स्टेटस 0, Created): शेड्यूल किए गए संदेश, और संदेश भेजें, ग्रुप में भेजें या कई नंबरों पर भेजें से कतार में डाले गए संदेश। जो संदेश पहले ही भेजा जा चुका है, उसे वापस नहीं लिया जा सकता। अगर उसी पल कोई बॉट वह संदेश भेज रहा है, तो वह फिर भी जा सकता है, इसलिए ज़रूरी कैंसलेशन के लिए संदेश स्टेटस से पुष्टि करें।
छोटा उदाहरण#
curl -X POST https://wbiztool.com/api/v1/cancel_msg/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"msg_id": 9817263
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/cancel_msg/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"msg_id": 9817263,
},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 400
if result.get("status") == 1:
print("Message cancelled")
else:
print("Not cancelled:", result.get("message", "no message in response"))// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/cancel_msg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
msg_id: 9817263,
}),
});
const result = await response.json(); // read the body even when the HTTP code is 400
if (result.status === 1) {
console.log("Message cancelled");
} else {
console.error("Not cancelled:", result.message ?? "no message in response");
}<?php
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'msg_id' => 9817263,
];
$ch = curl_init('https://wbiztool.com/api/v1/cancel_msg/');
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['status'] ?? 0) === 1) {
echo 'Message cancelled';
} else {
echo 'Not cancelled: ' . ($result['message'] ?? 'no message in response');
}12345 और YOUR_API_KEY की जगह अपनी वैल्यू डालें, और 9817263 की जगह वह msg_id डालें जो आपको संदेश भेजते या शेड्यूल करते समय मिला था।
रिक्वेस्ट पैरामीटर#
client_idintegerआवश्यकसेटिंग्स → API Keys से आपका API क्लाइंट ID।
api_keystringआवश्यकउसी पेज से आपकी API की।
msg_idintegerआवश्यकभेजने या शेड्यूल करने वाली रिक्वेस्ट से लौटा
msg_id। यह आपकी API की वाले वर्कस्पेस का होना चाहिए।
इस एंडपॉइंट को whatsapp_client की ज़रूरत नहीं है।
आधिकारिक क्लाइंट का इस्तेमाल#
Python और Node.js क्लाइंट आपके लिए यह एंडपॉइंट कॉल करते हैं।
from wbiztool_client import WbizToolClient
client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)
result = client.cancel_message(msg_id=9817263)
print(result)const { WbizToolClient } = require("wbiztool-client");
const client = new WbizToolClient({
clientId: 12345,
apiKey: "YOUR_API_KEY",
whatsappClient: 678, // required by the client's constructor, not used by this endpoint
});
(async () => {
const result = await client.cancelMessage(9817263);
console.log(result);
})().catch(console.error);दोनों क्लाइंट ऑथेंटिकेशन एरर (HTTP 400/403) पर एक्सेप्शन देते हैं: Python requests.HTTPError raise करता है, और Node.js API error: 400 - {…} throw करता है। Msg has been … वाला जवाब status: 0 के साथ एक सामान्य नतीजे के रूप में आता है।
रिस्पॉन्स#
सफल रिक्वेस्ट HTTP 200 लौटाती है:
{
"message": "Cancelled",
"status": 1
}
| फील्ड | टाइप | विवरण |
|---|---|---|
status | integer | संदेश कैंसल हो गया तो 1, नहीं हुआ तो 0। |
message | string | सफल होने पर Cancelled, वरना वजह। |
कैंसल करने के बाद संदेश स्टेटस संदेश को 3 (Cancelled) बताता है। कैंसल किया गया संदेश भेजा नहीं जाता, उसका वेबहुक ट्रिगर नहीं होता और वह आपके बचे हुए क्रेडिट में नहीं गिना जाता।
एरर#
ज़्यादातर एरर HTTP 200 के साथ आते हैं और उनमें status 0 होता है, इसलिए हमेशा बॉडी में status जांचें:
{ "message": "Msg has been Sent", "status": 0 }
| संदेश | कैसे ठीक करें |
|---|---|
Msg has been Sent | संदेश पहले ही भेजा जा चुका है। इसे कैंसल नहीं किया जा सकता। |
Msg has been Failed | संदेश पहले ही फेल हो चुका है, इसलिए कैंसल करने को कुछ नहीं है। |
Msg has been Cancelled | संदेश पहले ही कैंसल किया जा चुका है। |
Msg has been Expired | संदेश भेजे जाने से पहले ही एक्सपायर हो गया, इसलिए कैंसल करने को कुछ नहीं है। |
No msg found for given msg_id | msg_id जांचें। यह नंबर होना चाहिए और आपकी API की वाले वर्कस्पेस का होना चाहिए। |
Msg_id cant be null | msg_id जोड़ें। |
Auth Error | client_id और api_key दोनों भेजें। |
Invalid Client Id | client_id को नंबर के रूप में भेजें। HTTP 403 के साथ लौटता है। |
Auth Error: invalid api key | जांचें कि की मौजूद है, डिलीट नहीं हुई है और इसी client_id की है। HTTP 400 के साथ लौटता है। |
Invalid JSON format: … | JSON बॉडी सही नहीं है, अक्सर आखिर में छूटे कॉमा (trailing comma) की वजह से, या आपने client_id के बिना फॉर्म फील्ड भेजे हैं। |
खाली ऑब्जेक्ट {} | JSON बॉडी POST के अलावा किसी दूसरे मेथड से भेजी गई। |
सुझाव#
- हर
msg_idसेव करें: कैंसल करने के लिए आपको इसकी ज़रूरत होगी। कई नंबरों पर भेजें के लिए, रिस्पॉन्स के हरmsg_idको अलग-अलग कैंसल करें। - जल्दी कैंसल करें: एक बार भेजा गया संदेश वापस नहीं होता, इसलिए जैसे ही पता चले कि शेड्यूल किए गए संदेशों की ज़रूरत नहीं है, उन्हें कैंसल कर दें।
- दोबारा शेड्यूल करना: शेड्यूल किया गया समय बदलने के लिए कोई एंडपॉइंट नहीं है। संदेश कैंसल करें और नया संदेश शेड्यूल करें।
- पहले से अंतिम स्टेटस वाले संदेशों को पूरा मानें:
Msg has been …जवाब का मतलब है कि संदेश अब कतार में नहीं है, इसलिए दोबारा कोशिश करने की ज़रूरत नहीं है।
