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 (API Client ID) מהדף Settings → API keys.
api_keystringחובהמפתח ה-API שלכם מאותו דף.
msg_idintegerחובהה-
msg_idשהוחזר מבקשת השליחה או התזמון. הוא חייב להשתייך לסביבת העבודה של מפתח ה-API שלכם.
ה-endpoint הזה לא צריך whatsapp_client.
שימוש בלקוחות הרשמיים#
הלקוחות ל-Python ול-Node.js קוראים ל-endpoint הזה בשבילכם.
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, וב-Node.js נזרקת API error: 400 - {…}. תשובה מסוג Msg has been … חוזרת כתוצאה רגילה עם status: 0.
תגובה#
בקשה מוצלחת מחזירה HTTP 200:
{
"message": "Cancelled",
"status": 1
}
| שדה | סוג | תיאור |
|---|---|---|
status | integer | 1 אם ההודעה בוטלה, 0 אם לא. |
message | string | Cancelled בהצלחה, אחרת הסיבה. |
אחרי הביטול, סטטוס הודעה מדווח על ההודעה כ-3 (Cancelled). הודעה שבוטלה לא נשלחת, לא מפעילה את ה-webhook שלה ולא נספרת עוד מול הקרדיטים שנותרו לכם.
שגיאות#
רוב השגיאות מחזירות 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 לא תקין, לרוב בגלל פסיק מיותר בסוף, או ששלחתם שדות טופס בלי client_id. |
אובייקט ריק {} | נשלח גוף JSON בשיטה (method) שאינה POST. |
טיפים#
- שמרו כל
msg_id: אתם צריכים אותו כדי לבטל. ב-שליחה למספרים מרובים, בטלו כלmsg_idמהתגובה בנפרד. - בטלו מוקדם: הודעה שנשלחה נשארת שנשלחה, לכן בטלו הודעות מתוזמנות ברגע שאתם יודעים שהן כבר לא נחוצות.
- שינוי מועד: אין endpoint לשינוי מועד מתוזמן. בטלו את ההודעה ותזמנו הודעה חדשה.
- הודעות במצב סופי נחשבות גמורות: תשובה מסוג
Msg has been …אומרת שההודעה כבר לא בתור, כך שאין צורך לנסות שוב.
