Langkau ke kandungan
Wbiztool

API mesej

API Status Mesej

Semak sama ada mesej yang anda hantar melalui API masih dalam baris gilir, telah dihantar atau gagal. Gunakannya untuk mengesahkan bahawa mesej penting telah dihantar dan untuk mengetahui sebab sesuatu mesej tidak dihantar.

POSThttps://wbiztool.com/api/v1/message/status/{msg_id}/

Body: JSON atau medan borang

Letakkan ID mesej dalam URL, dengan menggantikan {msg_id} dengan msg_id yang dipulangkan oleh Hantar mesej, Hantar ke kumpulan, Hantar ke beberapa nombor atau Jadualkan mesej. Contohnya: https://wbiztool.com/api/v1/message/status/9817263/.

Contoh ringkas#

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"
  }'

Gantikan 12345 dan YOUR_API_KEY dengan nilai anda sendiri. Lihat Pengesahan identiti untuk mengetahui di mana nilai ini boleh didapati.

Parameter permintaan#

URL

msg_idintegerwajib

ID mesej, sebagai sebahagian daripada laluan URL. Ia mesti nombor bulat dan milik ruang kerja kunci API anda.

Badan

client_idintegerwajib

API Client ID anda dari Settings → API keys (Tetapan → Kunci API).

api_keystringwajib

Kunci API anda dari halaman yang sama.

Menggunakan klien rasmi#

Klien Python memanggil endpoint ini untuk anda.

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"))

Klien memulangkan medan yang sama seperti API, jadi result["status"] ialah keadaan mesej, bukan penanda kejayaan. Ralat pengesahan identiti menimbulkan requests.HTTPError; baca sebabnya dengan e.response.json()["message"].

Respons#

Endpoint memulangkan HTTP 200 dengan keadaan semasa mesej:

{
  "message": "Sent",
  "status": 1,
  "status_text": "Sent",
  "error": ""
}

Mesej yang gagal:

{
  "message": "Failed",
  "status": 2,
  "status_text": "Failed",
  "error": "Phone number invalid"
}
MedanJenisPenerangan
statusintegerKod status mesej. Lihat jadual di bawah.
status_textstringNama status: Created, Sent, Failed, Cancelled atau Expired.
messagestringNilai yang sama seperti status_text.
errorstring atau nullSebab mesej gagal. Sentiasa ada; kosong ("" atau null) apabila tiada ralat.

Nilai status#

statusstatus_textMaksud
0CreatedDalam baris gilir atau dijadualkan, menunggu untuk dihantar.
1SentTelah dihantar dari nombor WhatsApp anda.
2FailedTidak dapat dihantar, atau penghantaran terganggu. error menyatakan sebabnya. Jika error ialah Sending was interrupted and may have been delivered. Check WhatsApp before resending., penerima mungkin sudah menerima mesej itu, jadi jangan hantar semula secara automatik.
3CancelledDibatalkan sebelum dihantar, contohnya dengan Batal mesej.
4ExpiredTidak dihantar sebelum tarikh akhir expire_after_seconds.

Sent ialah keadaan kejayaan yang muktamad. Endpoint ini tidak melaporkan sama ada mesej telah sampai ke telefon atau telah dibaca.

Contoh nilai error bagi mesej yang gagal: 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.

Ralat#

{
  "message": "Unknown message id",
  "status": 0,
  "status_text": "pending",
  "error": "Invalid message id"
}
MesejCara membetulkannya
Unknown message idTiada mesej dengan ID itu dalam ruang kerja kunci API anda. Semak ID dan pastikan anda menggunakan kunci dari ruang kerja yang sama.
Auth ErrorHantar kedua-dua client_id dan api_key. Badan JSON yang tidak sah (contohnya koma di hujung) juga memulangkan Auth Error.
Invalid Client IdHantar client_id sebagai nombor. Dipulangkan dengan HTTP 403.
Auth Error: invalid api keyPastikan kunci wujud, belum dipadam dan milik client_id ini. Dipulangkan dengan HTTP 400.

Petua#

  • Utamakan webhook untuk kemas kini masa nyata: hantar webhook semasa anda menghantar mesej dan Wbiztool akan memaklumkan anda apabila ia dihantar atau gagal, jadi anda tidak perlu meninjau berulang kali. Mesej yang dibatalkan dan tamat tempoh tidak mencetuskan webhook, jadi semak mesej sebegini di sini.
  • Meninjau berulang kali: jika anda meninjau, berhenti sebaik sahaja status bukan lagi 0. Beri jarak beberapa saat antara setiap semakan.
  • Banyak mesej sekali gus: untuk menyemak mesej sepanjang hari, gunakan Sejarah mesej dan bukannya memanggil endpoint ini untuk setiap ID.
  • Mesej lama dibuang: mesej yang dihantar, gagal, dibatalkan dan tamat tempoh yang tidak berubah selama kira-kira 90 hari memulangkan Unknown message id. Begitu juga mesej yang masih dalam baris gilir 90 hari selepas ia dicipta atau dijadualkan, pada nombor yang terputus sambungan atau dipadam.
  • Integrasi lama: POST /api/v1/msg_status/ dengan msg_id dalam badan permintaan sudah tidak digunakan lagi (deprecated). Ia memulangkan medan yang sama. Ia juga menerima GET dengan client_id, api_key dan msg_id dalam rentetan pertanyaan, yang mendedahkan kunci API anda dalam URL dan log. Beralih kepada endpoint ini.