مستندات API واتساپ وااپ
با استفاده از API واتساپ وااپ میتوانید به راحتی از هر سیستم خارجی پیام واتساپ ارسال کنید. این API با امنیت بالا طراحی شده و شامل احراز هویت توکنی، محدودیت نرخ و لاگ کامل درخواستها است.
امنیت بالا
توکنهای هششده با SHA-256 و محدودیت IP
Rate Limiting
کنترل تعداد درخواست در دقیقه
لاگ کامل
ثبت تمام درخواستها با جزئیات
ساده و سریع
RESTful API با پاسخهای JSON
https://panel.waapp.ir/api/v1
🔐 احراز هویت
تمام درخواستها به API باید شامل یک توکن معتبر در هدر Authorization باشند.
نحوه ارسال توکن
HTTP HeaderAuthorization: Bearer YOUR_API_TOKEN
📨 ارسال پیام متنی
/api/v1/send
ارسال پیام متنی به یک شماره واتساپ
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
| phone * | string | شماره تلفن با کد کشور (مثال: 989123456789) |
| message * | string | متن پیام (حداکثر 4096 کاراکتر) |
نمونه درخواست
cURLcurl -X POST https://panel.waapp.ir/api/v1/send \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"phone": "989123456789", "message": "سلام!"}'
پاسخ موفق
JSON{
"success": true,
"message_id": "3EB0XXXXX",
"message": "پیام با موفقیت ارسال شد"
}
📷 ارسال رسانه
/api/v1/send-media
ارسال فایل رسانه (تصویر، ویدیو یا سند) به یک شماره واتساپ
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
| phone * | string | شماره تلفن با کد کشور (مثال: 989123456789) |
| media_url * | string (URL) | آدرس URL فایل رسانه (باید به صورت عمومی قابل دسترسی باشد) |
| type * | string | نوع رسانه: image، video یا document |
| caption | string | متن توضیحات رسانه (اختیاری، حداکثر 1024 کاراکتر) |
نمونه درخواست
cURLcurl -X POST https://panel.waapp.ir/api/v1/send-media \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "989123456789",
"media_url": "https://example.com/image.jpg",
"type": "image",
"caption": "این یک تصویر تست است"
}'
نمونههای مختلف
ارسال ویدیو
cURLcurl -X POST https://panel.waapp.ir/api/v1/send-media \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "989123456789",
"media_url": "https://example.com/video.mp4",
"type": "video",
"caption": "ویدیو توضیحی"
}'
ارسال سند
cURLcurl -X POST https://panel.waapp.ir/api/v1/send-media \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "989123456789",
"media_url": "https://example.com/document.pdf",
"type": "document"
}'
پاسخ موفق
JSON{
"success": true,
"message_id": "3EB0XXXXX",
"message": "مدیا با موفقیت ارسال شد"
}
پاسخ خطا
JSON{
"success": false,
"error": "پلن شما امکان ارسال رسانه را ندارد. لطفاً پلن خود را ارتقا دهید.",
"error_code": "MEDIA_NOT_ALLOWED"
}
محدودیتها و نکات مهم
- فایل رسانه باید از طریق URL قابل دسترسی باشد
- حداکثر حجم فایل: 16 مگابایت برای تصاویر و ویدیوها
- فرمتهای پشتیبانی شده:
- تصویر: JPG, PNG, GIF, WebP
- ویدیو: MP4, 3GP
- سند: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX
- برای استفاده از این endpoint، پلن شما باید قابلیت ارسال رسانه را داشته باشد
- حساب واتساپ باید در وضعیت
connectedباشد
🔍 بررسی شماره
/api/v1/check-number
بررسی اینکه آیا یک شماره در واتساپ ثبت شده است یا خیر
| نام | نوع | توضیحات |
|---|---|---|
| phone * | string | شماره تلفن با کد کشور |
📊 وضعیت حساب
/api/v1/status
دریافت وضعیت اتصال حساب واتساپ مرتبط با توکن
🔔 Webhook - دریافت خودکار پیامها
Webhook به شما امکان دریافت خودکار پیامهای دریافتی در حساب واتساپ را میدهد. هر زمان که پیامی به حساب واتساپ شما برسد، سیستم به صورت خودکار یک درخواست POST به URL تعیین شده شما ارسال میکند.
تنظیم Webhook
برای استفاده از Webhook، باید URL وبهوک خود را در تنظیمات حساب واتساپ در داشبورد تنظیم کنید. این URL باید یک endpoint معتبر باشد که درخواستهای POST را دریافت کند.
ساختار Payload
زمانی که پیامی دریافت میشود، سیستم یک درخواست POST با ساختار زیر به Webhook URL شما ارسال میکند:
JSON{
"update_id": 123,
"message": {
"message_id": "3EB0XXXXX",
"from": {
"phone": "989123456789",
"name": "نام فرستنده"
},
"chat": {
"phone": "989123456789",
"name": "نام فرستنده"
},
"text": "متن پیام دریافتی",
"date": "2024-12-15 14:30:00"
},
"account": {
"session_id": "account-session-id",
"name": "نام حساب واتساپ",
"phone_number": "989123456789"
}
}
توضیحات فیلدها
| فیلد | نوع | توضیحات |
|---|---|---|
| update_id | integer | شناسه یکتای پیام در سیستم |
| message.message_id | string | شناسه پیام از واتساپ |
| message.from.phone | string | شماره تلفن فرستنده با کد کشور |
| message.from.name | string | نام فرستنده (در صورت موجود بودن) |
| message.text | string | متن پیام دریافتی |
| message.date | string | تاریخ و زمان دریافت پیام (فرمت: Y-m-d H:i:s) |
| account.session_id | string | شناسه جلسه حساب واتساپ |
| account.name | string | نام حساب واتساپ |
| account.phone_number | string | شماره تلفن حساب واتساپ |
نمونه کد دریافت Webhook
در اینجا نمونههایی از نحوه دریافت و پردازش Webhook در زبانهای مختلف ارائه شده است:
PHP (Laravel)
PHPRoute::post('/webhook', function (Request $request) {
$data = $request->all();
$messageId = $data['message']['message_id'];
$from = $data['message']['from']['phone'];
$text = $data['message']['text'];
$accountName = $data['account']['name'];
// پردازش پیام دریافتی
// ...
return response()->json(['success' => true]);
});
Node.js (Express)
JavaScriptapp.post('/webhook', (req, res) => {
const { update_id, message, account } = req.body;
const messageId = message.message_id;
const from = message.from.phone;
const text = message.text;
const accountName = account.name;
// پردازش پیام دریافتی
// ...
res.json({ success: true });
});
Python (Flask)
Pythonfrom flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.json
message_id = data['message']['message_id']
from_phone = data['message']['from']['phone']
text = data['message']['text']
account_name = data['account']['name']
# پردازش پیام دریافتی
# ...
return jsonify({'success': True})
مشخصات فنی
- Method: POST
- Content-Type: application/json
- Timeout: 10 ثانیه
- Retry: در صورت خطا، درخواست دوباره ارسال نمیشود
🔌 افزونهها
افزونههای آماده برای اتصال آسان سیستمهای مختلف به API واتساپ وااپ. این افزونهها به شما کمک میکنند تا به راحتی قابلیت ارسال و دریافت پیام واتساپ را به وبسایت یا سیستم خود اضافه کنید.
جوملا
ماژول جوملا برای ارسال پیام واتساپ از طریق فرمها
به زودینصب افزونه وردپرس
- فایل افزونه را از لینک بالا دانلود کنید
- در پنل مدیریت وردپرس، به مسیر افزونهها > افزودن بروید
- روی دکمه "بارگذاری افزونه" کلیک کنید
- فایل ZIP افزونه را انتخاب و بارگذاری کنید
- افزونه را فعال کنید
- در منوی "WA App IR" تنظیمات API را وارد کنید
تنظیمات افزونه وردپرس
پس از فعالسازی افزونه، باید تنظیمات زیر را وارد کنید:
- API Token: توکن API که از داشبورد دریافت کردهاید
- Base URL: آدرس API (معمولاً:
https://panel.waapp.ir/api/v1) - Default Phone: شماره تلفن پیشفرض برای ارسال
نصب کتابخانه PHP
- فایل کتابخانه را از لینک بالا دانلود کنید
- محتویات فایل ZIP را در پروژه PHP خود استخراج کنید
- فایل
WaappApi.phpرا در پروژه خود قرار دهید - کتابخانه را در کد خود include کنید:
require_once 'WaappApi.php'; - توکن API خود را از داشبورد دریافت کنید
نصب با Composer (اختیاری)
اگر از Composer استفاده میکنید، میتوانید کتابخانه را به عنوان یک پکیج اضافه کنید:
Bashcomposer require waapp/waapp-api-php
example.php شامل نمونههای کاملی از نحوه استفاده از کتابخانه است.
همچنین فایل README.md مستندات کامل را شامل میشود.
آموزش ساخت افزونه سفارشی
اگر سیستم شما در لیست بالا نیست، میتوانید به راحتی افزونه سفارشی خود را با استفاده از API بسازید.
نمونه کد PHP
PHPfunction sendWhatsAppMessage($phone, $message, $apiToken) {
$url = 'https://panel.waapp.ir/api/v1/send';
$data = [
'phone' => $phone,
'message' => $message
];
$headers = [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// استفاده از تابع
$result = sendWhatsAppMessage('989123456789', 'سلام!', 'YOUR_API_TOKEN');
if ($result['success']) {
echo 'پیام با موفقیت ارسال شد!';
} else {
echo 'خطا: ' . $result['error'];
}
نمونه کد JavaScript
JavaScriptasync function sendWhatsAppMessage(phone, message, apiToken) {
const url = 'https://panel.waapp.ir/api/v1/send';
const data = {
phone: phone,
message: message
};
const response = await fetch(url, {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + apiToken,
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
return await response.json();
}
// استفاده از تابع
sendWhatsAppMessage('989123456789', 'سلام!', 'YOUR_API_TOKEN')
.then(result => {
if (result.success) {
console.log('پیام با موفقیت ارسال شد!');
} else {
console.log('خطا:', result.error);
}
});
⚠️ کدهای خطا
| کد | توضیحات |
|---|---|
| 401 | توکن نامعتبر یا منقضی شده |
| 403 | IP غیرمجاز یا دسترسی محدود |
| 429 | محدودیت نرخ - تعداد درخواست بیش از حد مجاز |
| 422 | دادههای ورودی نامعتبر |
| 503 | حساب واتساپ متصل نیست |
⏱️ محدودیت نرخ
هر توکن API دارای محدودیت تعداد درخواست در دقیقه است. این مقدار هنگام ایجاد توکن قابل تنظیم است. در صورت رسیدن به محدودیت، خطای 429 دریافت خواهید کرد.