مرحباً بك في وثائق WAAPI
واجهة WAAPI تمنحك القدرة على دمج واتساب في تطبيقاتك بسهولة. هذه الوثائق ستساعدك على البدء، سواء كنت تريد إرسال أول رسالة لك أو تبني نظاماً معقداً للمحادثات الآلية.
المصادقة (Authentication)
ملاحظة: يجب إدراج API Key و Auth Key في كل العمليات.
قم بتسجيل الدخول لرؤية مفاتيح الـ API الخاصة بك هنا.
تسجيل الدخولحزمة Laravel (WAAPI Laravel Package)
توفر هذه الحزمة واجهة API بسيطة ومعبرة للتفاعل مع خدمة WAAPI (WhatsApp API) داخل تطبيق Laravel بشكل سلس وسريع.
المميزات
- إرسال الرسائل النصية و OTP.
- واجهة برمجية (API) سلسة ومعبرة.
- تسجيل تلقائي لمسار الـ Webhook.
- معالجة بيانات الـ Webhook الواردة.
- تكامل مع Webhook.site للتنقيح (Debugging).
التثبيت (Installation)
composer require octopusteam/waapi-laravel
قم بنشر ملف الإعدادات:
php artisan vendor:publish --provider="OctopusTeam\Waapi\WaapiServiceProvider"
الإعدادات (Configuration)
قم بتحديث ملف .env الخاص بك بالبيانات التالية:
WAAPI_APP_URL=https://waapi.octopusteam.net/api/v1/message/send
WAAPI_APP_KEY=your_app_key
WAAPI_AUTH_KEY=your_auth_key
WAAPI_WEBHOOK_SITE_TOKEN=your_webhook_site_token
WAAPI_UPDATE_DEVICE_WEBHOOK=your_device_uuid_for_webhook_update
الاستخدام (Usage)
إرسال الرسائل
use OctopusTeam\Waapi\Facades\Waapi;
// Send a simple text message
$response = Waapi::sendMessage('1234567890', 'Hello, world!');
// Send an OTP
$otp = Waapi::generateOtp();
$response = Waapi::sendOtp('1234567890', $otp);
Webhook Handling
يمكن للحزمة تسجيل مسار Webhook تلقائياً. لتفعيل ذلك تأكد من الإعدادات في config/waapi.php:
'webhook' => [
'enabled' => true,
'auto_register' => true,
],
إرسال رسالة نصية
Endpoint بسيط لإرسال رسائل نصية مباشرة إلى أي رقم واتساب.
curl --location --request POST 'https://waapi.octopusteam.net/api/create-message' \
--form 'appkey="YOUR_APP_KEY"' \
--form 'authkey="YOUR_AUTH_KEY"' \
--form 'to="2010xxxxxxxx"' \
--form 'message="Hello from WAAPI!"'
إرسال وسائط (صور، ملفات)
إرسال ملفات PDF، صور، أو مستندات عبر رابط مباشر.
curl --location --request POST 'https://waapi.octopusteam.net/api/create-message' \
--form 'appkey="YOUR_APP_KEY"' \
--form 'authkey="YOUR_AUTH_KEY"' \
--form 'to="2010xxxxxxxx"' \
--form 'message="Here is your invoice"' \
--form 'file="https://example.com/invoice.pdf"'
إرسال قالب (Template)
إرسال قوالب واتساب المعتمدة مع متغيرات ديناميكية.
curl --location --request POST 'https://waapi.octopusteam.net/api/create-message' \
--form 'appkey="YOUR_APP_KEY"' \
--form 'authkey="YOUR_AUTH_KEY"' \
--form 'to="2010xxxxxxxx"' \
--form 'template_id="TEMPLATE_ID"' \
--form 'variables[{1}]="John"' \
--form 'variables[{2}]="Order #123"'
إرسال ملصق (Sticker)
إرسال ملصقات واتساب ثابتة أو متحركة عبر رابط مباشر.
curl --location --request POST 'https://waapi.octopusteam.net/api/send-sticker' \
--form 'appkey="YOUR_APP_KEY"' \
--form 'authkey="YOUR_AUTH_KEY"' \
--form 'to="2010xxxxxxxx"' \
--form 'url="https://example.com/sticker.webp"'
إرسال ملاحظة صوتية (Voice Note)
إرسال ملف صوتي ليظهر كأنه مسجل من الميكروفون (PTT).
curl --location --request POST 'https://waapi.octopusteam.net/api/send-voice' \
--form 'appkey="YOUR_APP_KEY"' \
--form 'authkey="YOUR_AUTH_KEY"' \
--form 'to="2010xxxxxxxx"' \
--form 'url="https://example.com/voice.mp3"'
إرسال موقع (Location)
مشاركة موقع جغرافي محدد على الخريطة.
curl --location --request POST 'https://waapi.octopusteam.net/api/send-location' \
--form 'appkey="YOUR_APP_KEY"' \
--form 'authkey="YOUR_AUTH_KEY"' \
--form 'to="2010xxxxxxxx"' \
--form 'latitude="30.0444"' \
--form 'longitude="31.2357"'
إرسال جهة اتصال (Contact)
مشاركة بطاقة جهة اتصال (VCard).
curl --location --request POST 'https://waapi.octopusteam.net/api/send-contact' \
--form 'appkey="YOUR_APP_KEY"' \
--form 'authkey="YOUR_AUTH_KEY"' \
--form 'to="2010xxxxxxxx"' \
--form 'contact[name]="John Doe"' \
--form 'contact[number]="2010xxxxxxxx"' \
--form 'contact[organization]="Octopus Team"'
الحصول على حالة الجهاز
التحقق من حالة اتصال الجهاز بالخادم باستخدام معرف الجهاز.
curl --location --request POST 'https://waapi.octopusteam.net/api/get-status' \
--form 'device_id="DEVICE_ID"' \
--form 'authkey="YOUR_AUTH_KEY"'
الحصول على رمز QR
الحصول على رمز الاستجابة السريعة (QR Code) لربط الجهاز.
curl --location --request POST 'https://waapi.octopusteam.net/api/get-qr' \
--form 'device_id="DEVICE_ID"' \
--form 'authkey="YOUR_AUTH_KEY"'
البارامترات (Parameters)
| الاسم | النوع | مطلوب؟ | الوصف |
|---|---|---|---|
| appkey | string | نعم | مفتاح التطبيق الخاص بك |
| authkey | string | نعم | مفتاح المصادقة الخاص بالمستخدم |
| to | number | نعم | رقم الواتساب المستلم بالصيغة الدولية (مثال: 2010xxxxxx) |
| message | string | مشروط | نص الرسالة (مطلوب في حالة عدم استخدام قالب) |
| file | url | لا | رابط مباشر للملف المرفق (PDF, JPG, PNG, etc...) |
| template_id | string | لا | معرف القالب (Template ID) في حالة إرسال قالب |
| variables | array | لا | مصفوفة المتغيرات للقالب. المثال: variables[{1}] |
نموذج الاستجابة (Response)
{
"message_status": "Success",
"data": {
"from": "SENDER_NUMBER",
"to": "RECEIVER_NUMBER",
"status_code": 200,
"message_id": "wamid.HBgLM..."
}
}
أكواد الخطأ (Error Codes)
| الكود | المعنى | الوصف |
|---|---|---|
| 401 | Unauthorized | مفتاح التطبيق (App Key) أو مفتاح المصادقة (Auth Key) غير صحيح. |
| 403 | Forbidden | حسابك غير نشط أو ليس لديك رصيد كافٍ. |
| 404 | Not Found | المسار المطلوب غير موجود. |
| 422 | Validation Error | خطأ في البيانات المرسلة (مثل رقم هاتف غير صحيح أو حقل مفقود). |
| 500 | Server Error | خطأ داخلي في الخادم، يرجى المحاولة لاحقاً. |
هيكلية بيانات Webhook (Incoming Message)
عند استقبال رسالة جديدة، سيقوم النظام بإرسال طلب POST إلى رابط الـ Webhook الخاص بك يحتوي على البيانات التالية:
{
"event": "message",
"instanceId": "12345",
"data": {
"id": "false_1234567890@c.us_3EB0...",
"from": "1234567890@c.us",
"to": "0987654321@c.us",
"body": "Hello World",
"type": "chat",
"timestamp": 1672531200,
"notifyName": "John Doe",
"isGroupMsg": false
}
}