API mesej
API Batal Mesej
Batalkan mesej WhatsApp yang belum dihantar. Gunakannya untuk menghentikan peringatan yang dijadualkan selepas temu janji dibatalkan, atau untuk menarik balik mesej dalam baris gilir yang dihantar secara tersilap.
https://wbiztool.com/api/v1/cancel_msg/Body: JSON atau medan borang
Anda boleh membatalkan mana-mana mesej yang masih menunggu untuk dihantar (status 0, Created): mesej yang dijadualkan, dan mesej yang dimasukkan ke dalam baris gilir oleh Hantar mesej, Hantar ke kumpulan atau Hantar ke beberapa nombor. Mesej yang telah dihantar tidak boleh ditarik balik. Jika bot sedang menghantar mesej itu pada saat tersebut, mesej mungkin tetap dihantar, jadi untuk pembatalan yang kritikal, sahkan dengan Status mesej.
Contoh ringkas#
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');
}Gantikan 12345 dan YOUR_API_KEY dengan nilai anda sendiri, dan 9817263 dengan msg_id yang anda terima semasa menghantar atau menjadualkan mesej.
Parameter permintaan#
client_idintegerwajibAPI Client ID anda dari Settings → API keys (Tetapan → Kunci API).
api_keystringwajibKunci API anda dari halaman yang sama.
msg_idintegerwajibmsg_idyang dipulangkan oleh permintaan hantar atau jadual. Ia mesti milik ruang kerja kunci API anda.
Endpoint ini tidak memerlukan whatsapp_client.
Menggunakan klien rasmi#
Klien Python dan Node.js memanggil endpoint ini untuk anda.
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);Kedua-dua klien melontarkan ralat pada ralat pengesahan identiti (HTTP 400/403): Python menimbulkan requests.HTTPError, dan Node.js melontarkan API error: 400 - {…}. Balasan Msg has been … dipulangkan sebagai hasil biasa dengan status: 0.
Respons#
Permintaan yang berjaya memulangkan HTTP 200:
{
"message": "Cancelled",
"status": 1
}
| Medan | Jenis | Penerangan |
|---|---|---|
status | integer | 1 jika mesej telah dibatalkan, 0 jika tidak. |
message | string | Cancelled jika berjaya, jika tidak, sebabnya. |
Selepas pembatalan, Status mesej melaporkan mesej sebagai 3 (Cancelled). Mesej yang dibatalkan tidak dihantar, tidak mencetuskan webhooknya dan tidak lagi dikira dalam baki kredit anda.
Ralat#
Kebanyakan ralat memulangkan HTTP 200 dengan status ditetapkan kepada 0, jadi sentiasa semak status dalam badan respons:
{ "message": "Msg has been Sent", "status": 0 }
| Mesej | Cara membetulkannya |
|---|---|
Msg has been Sent | Mesej telah pun dihantar. Ia tidak boleh dibatalkan. |
Msg has been Failed | Mesej telah pun gagal, jadi tiada apa-apa untuk dibatalkan. |
Msg has been Cancelled | Mesej telah dibatalkan sebelum ini. |
Msg has been Expired | Mesej tamat tempoh sebelum dihantar, jadi tiada apa-apa untuk dibatalkan. |
No msg found for given msg_id | Semak msg_id. Ia mesti nombor dan milik ruang kerja yang sama dengan kunci API anda. |
Msg_id cant be null | Tambah msg_id. |
Auth Error | Hantar kedua-dua client_id dan api_key. |
Invalid Client Id | Hantar client_id sebagai nombor. Dipulangkan dengan HTTP 403. |
Auth Error: invalid api key | Pastikan kunci wujud, belum dipadam dan milik client_id ini. Dipulangkan dengan HTTP 400. |
Invalid JSON format: … | Badan JSON tidak sah, selalunya kerana koma di hujung, atau anda menghantar medan borang tanpa client_id. |
Objek kosong {} | Badan JSON dihantar dengan kaedah selain POST. |
Petua#
- Simpan setiap
msg_id: anda memerlukannya untuk membatalkan. Untuk Hantar ke beberapa nombor, batalkan setiapmsg_iddalam respons secara berasingan. - Batalkan awal: sebaik sahaja mesej dihantar, ia kekal dihantar, jadi batalkan mesej yang dijadualkan sebaik sahaja anda tahu ia tidak lagi diperlukan.
- Menjadualkan semula: tiada endpoint untuk menukar masa yang dijadualkan. Batalkan mesej dan jadualkan mesej baharu.
- Anggap mesej yang sudah muktamad sebagai selesai: balasan
Msg has been …bermaksud mesej tidak lagi berada dalam baris gilir, jadi anda tidak perlu mencuba semula.
