Langkau ke kandungan
Wbiztool

API mesej

API Hantar ke Beberapa Nombor

Hantar mesej WhatsApp yang sama ke beberapa nombor telefon dan kumpulan dalam satu permintaan. Gunakannya untuk siaran kecil seperti surat berita, tawaran dan pengumuman.

POSThttps://wbiztool.com/api/v1/send_msg/multi/

Body: JSON atau medan borang

Wbiztool mencipta satu mesej bagi setiap penerima dan memulangkan msg_id untuk setiap satu, supaya anda boleh menyemak statusnya secara berasingan.

Contoh ringkas#

curl -X POST https://wbiztool.com/api/v1/send_msg/multi/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 0,
    "country_code": "91",
    "phone": "9876543210,9812345670,Sales Team Mumbai",
    "msg": "Our Diwali sale starts tomorrow. Get 20% off on all orders!"
  }'

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

Parameter permintaan#

Pengesahan identiti

client_idintegerwajib

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

api_keystringwajib

Kunci API anda dari halaman yang sama.

whatsapp_clientintegerwajib

ID nombor WhatsApp yang digunakan untuk menghantar, dari tetapan WhatsApp. Tidak seperti Hantar mesej, endpoint ini tidak pernah memilih nombor untuk anda.

Penerima dan mesej

phonestringwajib

Nombor telefon dan nama kumpulan dalam satu rentetan yang dipisahkan dengan koma, contohnya 9876543210,9812345670,Sales Team Mumbai. Jangan hantar tatasusunan JSON. Lihat Cara penerima dibaca.

country_codestringpilihan

Kod panggilan negara tanpa +, contohnya 91. Kod ini ditambah di hadapan setiap nombor telefon kecuali nombor itu sudah bermula dengannya. Dalam JSON, hantarkannya sebagai rentetan ("91"), bukan nombor. Jika anda menghantar nombor, setiap nombor telefon dalam senarai dianggap sebagai nama kumpulan (is_group: true), dan mesej tersebut akan gagal.

msg_typeintegerpilihan

0 teks (lalai), 1 imej, 2 fail atau dokumen.

msgstringWajib apabila msg_type ialah 0

Teks mesej. Untuk imej dan fail, ini ialah kapsyen dan boleh dibiarkan kosong. Format WhatsApp boleh digunakan: *bold*, _italic_, ~strikethrough~. message diterima sebagai alias.

Imej dan fail

img_urlstringWajib apabila msg_type ialah 1

URL http atau https awam bagi imej.

file_urlstringWajib apabila msg_type ialah 2

URL http atau https awam tempat fail boleh dimuat turun secara terus.

file_namestringpilihan

Nama fail yang dilihat oleh penerima, seperti price-list.pdf. Nama dihantar dalam huruf kecil, aksara seperti & : ? * $ ; digantikan dengan _, dan nama dipotong kepada 150 aksara. Jika anda tidak menyertakannya, nama diambil daripada URL.

Pilihan penghantaran

webhookstringpilihan

URL yang menerima POST bagi setiap mesej apabila ia dihantar atau gagal. Muatannya sama seperti untuk Hantar mesej.

Imej dari URLcURL
curl -X POST https://wbiztool.com/api/v1/send_msg/multi/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 1,
    "country_code": "91",
    "phone": "9876543210,9812345670",
    "img_url": "https://example.com/offers/diwali-sale.jpg",
    "msg": "Our Diwali sale starts tomorrow."
  }'

Cara penerima dibaca#

Wbiztool memisahkan phone mengikut koma, membuang ruang di sekeliling setiap item, kemudian menentukan jenis setiap item:

  • Digit sahaja (+ atau sifar di hadapan dibenarkan): dianggap sebagai nombor telefon. country_code ditambah kecuali nombor itu sudah bermula dengannya, kemudian nombor mesti sepanjang 6 hingga 15 digit.
  • Selain itu: dianggap sebagai nama kumpulan WhatsApp, dicari dengan cara yang sama seperti dalam Hantar ke kumpulan.
  • Kumpulan yang namanya hanya digit (contohnya 2024) dianggap sebagai nombor telefon, dan nama kumpulan yang mengandungi koma tidak boleh dihantar dari endpoint ini. Gunakan Hantar ke kumpulan untuk kumpulan sebegini.

Perkara lain yang perlu diketahui:

  • Nombor yang terlalu pendek atau terlalu panjang selepas kod negara ditambah akan dilangkau tanpa pemberitahuan. Nombor ini tidak muncul dalam respons dan tidak mendapat msg_id.
  • Pendua tidak dibuang. Nombor yang disenaraikan dua kali akan menerima dua mesej.
  • Jika nombor tempatan kebetulan bermula dengan digit yang sama seperti country_code (contohnya 9123456780 dengan country_code 91), kod tidak ditambah. Hantar nombor sebegini dengan kod negara sudah disertakan (919123456780).
  • URL imej dan fail tidak disemak semasa anda memanggil API. URL dimuat turun semasa setiap mesej dihantar, jadi pautan yang rosak menyebabkan mesej gagal kemudian, bukan permintaan. Peraturan semasa penghantaran yang sama seperti Hantar mesej terpakai: imej melebihi 16 MB dan video melebihi 64 MB akan gagal, audio WAV dan OGG tidak disokong, dan fail (msg_type 2) tanpa sambungan yang disokong akan ditambah .pdf. Lihat Menghantar imej dan fail.

Kredit#

Keseluruhan kelompok disemak berbanding baki kredit anda sebelum apa-apa dicipta. Setiap item yang tidak kosong dalam phone dikira, termasuk item yang kemudiannya dilangkau. Jika jumlahnya melebihi baki kredit anda, tiada mesej dicipta dan anda akan menerima:

{
  "message": "Not enough credits: 120 messages requested, 85 credits remaining",
  "status": 0
}

Mesej yang berada dalam baris gilir tetapi belum dihantar juga dikira dalam baki kredit anda. Pecahkan senarai besar kepada permintaan yang lebih kecil atau tambah nilai pelan anda. Untuk kempen besar, muat naik hamparan dari halaman Campaigns (Kempen).

Respons#

Permintaan yang berjaya memulangkan HTTP 200:

{
  "msg_ids": [9817263, 9817264, 9817265],
  "messages": [
    { "msg_id": 9817263, "contact": "919876543210", "is_group": false },
    { "msg_id": 9817264, "contact": "919812345670", "is_group": false },
    { "msg_id": 9817265, "contact": "Sales Team Mumbai", "is_group": true }
  ],
  "message": "Successfully created 3 messages",
  "status": 1
}
MedanJenisPenerangan
statusinteger1 jika sekurang-kurangnya satu mesej dimasukkan ke dalam baris gilir, jika tidak 0.
messagestringSuccessfully created N messages jika berjaya, jika tidak, mesej ralat.
msg_idstatasusunan integerID mesej dalam baris gilir, mengikut susunan phone. Hanya ada jika berjaya.
messagestatasusunanSatu objek bagi setiap mesej dalam baris gilir. Hanya ada jika berjaya.
messages[].msg_idintegerID mesej.
messages[].contactstringNombor telefon dengan kod negara yang telah ditambah, atau nama kumpulan.
messages[].is_groupbooleantrue jika item itu dianggap sebagai nama kumpulan.

Bandingkan messages dengan senarai yang anda hantar untuk mencari nombor yang dilangkau, dan pastikan is_group ialah false bagi setiap item yang anda maksudkan sebagai nombor telefon.

Ralat#

Kebanyakan ralat memulangkan HTTP 200 dengan status ditetapkan kepada 0, jadi sentiasa semak status dalam badan respons. Kecuali ralat HTTP 400 dan 403, respons (termasuk yang berjaya) ialah JSON yang dihantar dengan Content-Type: text/html, jadi huraikan badan respons sendiri dan jangan bergantung pada pengesanan JSON automatik (contohnya dalam alat tanpa kod):

{ "message": "Invalid whatsapp client", "status": 0 }
MesejCara membetulkannya
Auth ErrorHantar kedua-dua client_id dan api_key.
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.
Msg cant be nullMesej teks (msg_type 0) memerlukan msg.
Image Url Can't be nullUntuk msg_type 1, hantar img_url.
File Url Can't be nullUntuk msg_type 2, hantar file_url.
Not enough credits: … messages requested, … credits remainingHantar kepada lebih sedikit penerima atau tambah kredit. Lihat Kredit.
Invalid whatsapp clientID whatsapp_client itu tiada dalam ruang kerja anda.
No valid contacts foundSetiap item dalam phone kosong atau dilangkau. Pastikan nombor sepanjang 6 hingga 15 digit termasuk kod negara.
Demo Account can not access apisGunakan akaun biasa.
Invalid JSON format: …Badan JSON tidak sah, atau anda menghantar medan borang tanpa client_id.

Petua#

  • Hantar phone sebagai rentetan: gabungkan senarai anda dengan koma. Tatasusunan JSON memulangkan {}.
  • Jangan gunakan send_bulk_messages klien Python buat masa ini: ia menghantar senarai sebagai phones, yang diabaikan oleh endpoint ini. Panggil endpoint secara terus seperti dalam contoh di atas.
  • Jejaki setiap mesej: simpan setiap msg_id daripada messages, atau hantar webhook untuk dimaklumkan apabila setiap mesej dihantar atau gagal.
  • Pastikan nombor anda kekal disambungkan: setiap mesej dihantar dari nombor WhatsApp anda, jadi ia mesti kekal disambungkan di tetapan WhatsApp sehingga keseluruhan kelompok selesai dihantar.
  • Teks berbeza bagi setiap orang: endpoint ini menghantar msg yang sama kepada semua orang. Panggil Hantar mesej sekali bagi setiap penerima untuk memperibadikan setiap mesej.