API להודעות
ממשק API לשליחת הודעה לקבוצת WhatsApp
שלחו הודעת WhatsApp עם טקסט, תמונה או מסמך לקבוצת WhatsApp שהמספר המחובר שלכם חבר בה. השתמשו בו להודעות לצוות, לעדכונים לקהילה ולהתראות תפוצה.
https://wbiztool.com/api/v1/send_msg/group/גוף הבקשה: JSON, שדות טופס, או multipart/form-data בהעלאת קובץ
ההודעה נכנסת לתור ונשלחת לקבוצה ממספר ה-WhatsApp שלכם. התגובה מחזירה msg_id שבעזרתו אפשר לבדוק את הסטטוס שלה.
דוגמה מהירה#
curl -X POST https://wbiztool.com/api/v1/send_msg/group/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 0,
"group_name": "Sales Team Mumbai",
"msg": "Reminder: *weekly review* starts at 4 PM today."
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/send_msg/group/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 0,
"group_name": "Sales Team Mumbai",
"msg": "Reminder: *weekly review* starts at 4 PM today.",
},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 400
if result.get("status") == 1:
print("Queued with msg_id", result["msg_id"])
else:
print("Failed:", result.get("message"))// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/send_msg/group/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
whatsapp_client: 678,
msg_type: 0,
group_name: "Sales Team Mumbai",
msg: "Reminder: *weekly review* starts at 4 PM today.",
}),
});
const result = await response.json(); // read the body even when the HTTP code is 400
if (result.status === 1) {
console.log("Queued with msg_id", result.msg_id);
} else {
console.error("Failed:", result.message);
}<?php
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'whatsapp_client' => 678,
'msg_type' => 0,
'group_name' => 'Sales Team Mumbai',
'msg' => 'Reminder: *weekly review* starts at 4 PM today.',
];
$ch = curl_init('https://wbiztool.com/api/v1/send_msg/group/');
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 'Queued with msg_id ' . $result['msg_id'];
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}החליפו את 12345, YOUR_API_KEY ו-678 בערכים שלכם. בסעיף אימות מוסבר איפה למצוא אותם.
פרמטרי הבקשה#
אימות
client_idintegerחובהמזהה הלקוח שלכם ל-API (API Client ID) מהדף Settings → API keys.
api_keystringחובהמפתח ה-API שלכם מאותו דף.
whatsapp_clientintegerחובה אם לבעלים יש יותר ממספר מחובר אחדהמזהה של מספר ה-WhatsApp שממנו שולחים, מהדף הגדרות WhatsApp. הוא חייב להיות מספר ששייך לבעלים של סביבת העבודה. אם לא תשלחו אותו ולבעלים יש בדיוק מספר מחובר אחד, ייעשה שימוש במספר הזה.
קבוצה והודעה
group_namestringחובהשם קבוצת ה-WhatsApp, בדיוק כפי שהוא מופיע ב-WhatsApp. שלחו אותו כמחרוזת. מספר JSON כמו
2024מחזיר דף שגיאה ב-HTML (HTTP500). ראו איך מאתרים את הקבוצה.msg_typeintegerאופציונלי0טקסט (ברירת מחדל),1תמונה,2קובץ או מסמך.msgstringחובה כש-msg_type הוא 0טקסט ההודעה. בתמונות ובקבצים זה הכיתוב, והוא יכול להיות ריק. עיצוב של WhatsApp עובד:
*bold*,_italic_,~strikethrough~. אפשר להשתמש גם בשם החלופיmessage.
תמונות וקבצים
img_urlstringחובה כש-msg_type הוא 1 ולא הועלה קובץכתובת URL ציבורית של התמונה, ב-
httpאו ב-https.file_urlstringחובה כש-msg_type הוא 2 ולא הועלה קובץכתובת URL ציבורית ב-
httpאו ב-httpsשממנה אפשר להוריד את הקובץ ישירות.filefileאופציונליהעלו את התמונה או הקובץ במקום לתת כתובת URL. שלחו את הבקשה כ-
multipart/form-dataעם שדה בשםfile.file_namestringאופציונלישם הקובץ שהקבוצה רואה, למשל
price-list.pdf. הסיומת שלו קובעת איך הקובץ נשלח, לכן הקפידו לכלול סיומת. הוא נשלח באותיות קטנות, תווים כמו& : ? * $ ;מוחלפים ב-_, והוא נחתך ל-150 תווים. אם לא תשלחו אותו, השם יילקח מכתובת ה-URL או מהקובץ שהועלה.
אפשרויות מסירה
expire_after_secondsintegerאופציונליסימון ההודעה כפגת תוקף (סטטוס
4) אם היא לא נשלחה בתוך מספר השניות הזה, למשל3600לשעה אחת. תהליך רקע עושה זאת לפחות 30 שניות אחרי המועד האחרון, לכן אל תסתמכו עליו למועדים קצרים מדקה.webhookstringאופציונליכתובת URL שמקבלת בקשת
POSTכשההודעה נשלחת או נכשלת. התוכן זהה לזה של שליחת הודעה.
תמונות וקבצים כפופים לאותם כללים כמו בשליחת הודעה: כתובות URL מורדות ברגע שאתם קוראים ל-API (עד 100 MB). כשההודעה נשלחת, תמונות מעל 16 MB וסרטונים מעל 64 MB נכשלים, אודיו WAV ו-OGG לא נתמך, ולקבצים (msg_type 2) בלי סיומת נתמכת מתווספת הסיומת .pdf, כולל קבצים שהועלו. שמות קבצים נשלחים באותיות קטנות. הרשימה המלאה של הסיומות והשגיאות נמצאת בשליחת תמונות וקבצים.
כדי להעלות קובץ, השתמשו בדוגמאות ה-multipart שבשליחת הודעה, והחליפו את כתובת ה-URL ב-/api/v1/send_msg/group/ ואת phone/country_code ב-group_name.
curl -X POST https://wbiztool.com/api/v1/send_msg/group/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 1,
"group_name": "Sales Team Mumbai",
"img_url": "https://example.com/reports/weekly-sales.png",
"msg": "This week'\''s sales summary"
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/send_msg/group/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 1,
"group_name": "Sales Team Mumbai",
"img_url": "https://example.com/reports/weekly-sales.png",
"msg": "This week's sales summary",
},
timeout=60,
)
print(response.json())// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/send_msg/group/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
whatsapp_client: 678,
msg_type: 1,
group_name: "Sales Team Mumbai",
img_url: "https://example.com/reports/weekly-sales.png",
msg: "This week's sales summary",
}),
});
console.log(await response.json());<?php
$ch = curl_init('https://wbiztool.com/api/v1/send_msg/group/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'whatsapp_client' => 678,
'msg_type' => 1,
'group_name' => 'Sales Team Mumbai',
'img_url' => 'https://example.com/reports/weekly-sales.png',
'msg' => "This week's sales summary",
]),
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);
curl_close($ch);איך מאתרים את הקבוצה#
מערכת Wbiztool לא בודקת את שם הקבוצה כשאתם קוראים ל-API. בזמן שליחת ההודעה, Wbiztool מחפשת את group_name בצ'אטים של ה-WhatsApp שלכם ופותחת את התוצאה הראשונה. לכן:
- מספר ה-WhatsApp המחובר שלכם חייב להיות חבר בקבוצה.
- השתמשו בשם המלא של הקבוצה בדיוק כפי ש-WhatsApp מציג אותו, כולל אימוג'י וסימני פיסוק. רווחים בתחילת השם ובסופו לא נלקחים בחשבון.
- הקפידו שהשם יהיה ייחודי. שם קצר או חלקי עלול להתאים לצ'אט אחר שמופיע ראשון בחיפוש.
- אם אין התאמה, אם רק מנהלים יכולים לשלוח הודעות בקבוצה והמספר שלכם אינו מנהל, או אם רק מנהלי הקהילה יכולים לפרסם, ההודעה נכשלת עם השגיאה
Group not found. - אם המספר שלכם עזב את הקבוצה, ההודעה נכשלת עם השגיאה
Group member blocked.
בעיות בקבוצה לא מופיעות בתגובת ה-API. השתמשו ב-webhook או ב-סטטוס הודעה כדי לגלות אם ההודעה נשלחה.
שימוש בלקוח הרשמי#
לקוח ה-Python קורא ל-endpoint הזה בשבילכם.
from wbiztool_client import WbizToolClient
client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)
result = client.send_message_to_group(
group_name="Sales Team Mumbai",
msg="Reminder: weekly review starts at 4 PM today.",
whatsapp_client=678,
)
print(result)שגיאות זורקות requests.HTTPError. קראו את הסיבה עם e.response.json()["message"].
תגובה#
בקשה מוצלחת מחזירה HTTP 200:
{
"status": 1,
"message": "Created",
"msg_id": 9817263
}
| שדה | סוג | תיאור |
|---|---|---|
status | integer | 1 אם ההודעה נכנסה לתור, 0 אם הבקשה נכשלה. |
message | string | Created בהצלחה, אחרת השגיאה. |
msg_id | integer | המזהה של ההודעה שבתור. שמרו אותו כדי לבדוק את הסטטוס בהמשך. מופיע רק בהצלחה. |
הערך "status": 1 אומר שההודעה נכנסה לתור, ולא שהיא הגיעה לקבוצה. השתמשו ב-webhook או ב-סטטוס הודעה כדי לוודא שהיא נשלחה.
שגיאות#
שגיאות מחזירות HTTP 400 עם status שמוגדר ל-0:
{ "status": 0, "message": "Group Name cant be null" }
| הודעה | איך לתקן |
|---|---|
Auth Error - Please send correct API key and Client id | שלחו api_key שאינו ריק. |
Invalid client id. | שלחו את client_id כמספר. |
Auth Error: invalid api key | ודאו שהמפתח קיים, לא נמחק ושייך ל-client_id הזה. |
Group Name cant be null | הוסיפו group_name. |
Msg cant be null | הודעות טקסט (msg_type 0) דורשות msg. |
Image Url Can't be null | עבור msg_type 1, שלחו img_url או העלו file. |
File Url Can't be null | עבור msg_type 2, שלחו file_url או העלו file. |
Invalid file url, Can't download / Invalid file url | כתובת ה-URL לא ציבורית, חרגה מזמן ההמתנה, או שהקובץ גדול מ-100 MB. |
Invalid whatsapp client None | המזהה whatsapp_client הזה לא שייך לבעלים של סביבת העבודה. ראו את האזהרה למעלה. |
Invalid whatsapp client id. | שלחו whatsapp_client. הוא חובה, אלא אם לבעלים יש בדיוק מספר מחובר אחד. |
Not enough credits | לא נותרו הודעות בחבילה שלכם. |
Demo Account can not access apis | השתמשו בחשבון רגיל. |
Account Disabled | החשבון שלכם מושבת. פנו לתמיכה. |
Invalid JSON format: … | גוף ה-JSON לא תקין, לרוב בגלל פסיק מיותר בסוף או ירידת שורה בתוך msg שלא עברה escape. השתמשו ב-\n לשורות חדשות. |
טיפים#
- בדקו את השם קודם: שלחו טקסט קצר לקבוצה ובדקו את סטטוס ההודעה לפני שאתם הופכים משהו לאוטומטי.
- קבוצות ששמן שונה: אם מישהו משנה את שם הקבוצה ב-WhatsApp, עדכנו גם את
group_nameבאינטגרציה שלכם. - סוגי הודעות: הערכים התקינים היחידים של
msg_typeהם0,1ו-2. כל ערך שאינו מספר שלם מחזיר דף שגיאה ב-HTML (HTTP500) במקום JSON. - כמה קבוצות בבת אחת: שליחה למספרים מרובים מקבלת שמות קבוצות לצד מספרי טלפון באותה בקשה.
