إرسال صورة
تتوقع SendImage كائن ملف (url، mimetype، filename) وشرح/رد مطلوب.
تسجيل الدخول مطلوب
سجل الدخول لاستبدال المعرفات (Instance ID) ورمز الوصول (Access Token) بمعلومات حسابك الحقيقي لاختبار ال API مباشرة.
تسجيل الدخوللا توجد معاملات استعلام مطلوبة
هذه النهاية الطرفية لا تتوقع بيانات في الرابط.
توصيات
أضف تأخيرات عشوائية بين الرسائل لمحاكاة السلوك البشري.
تحقق من أرقام الهواتف قبل الإرسال لضمان التسليم.
رواية القصص المرئية: تسخير محرك رسائل الصور
الصور هي أكثر أشكال التواصل جاذبية على واتساب. سواء كان ذلك كتالوج منتجات، أو بنر ترويجي، أو لقطة شاشة تقنية، فإن نقطة النهاية /v2/send/image توفر طريقة قوية لتقديم مرئيات عالية الجودة لمستخدميك. يتعامل محرك صور Wawp مع الأعباء الثقيلة لجلب الأصول عن بُعد، والتحقق من أنواع MIME، وضمان عرض الصور بشكل صحيح على جميع عملاء واتساب (الجوال، الويب، وسطح المكتب).
🏗️ مسار الوسائط متعدد المراحل
عندما تستدعي نقطة النهاية /send/image، ينظم Wawp عملية خلفية معقدة:
- الجلب غير المتزامن (Asynchronous Fetching): يستخدم المحرك جالبًا عالي السرعة لاسترداد الملف من عنوان URL المقدم. نوصي باستخدام شبكة توصيل المحتوى (CDN) لضمان عمليات نقل منخفضة التأخير.
- التحقق من التنسيق: واتساب صارم بشأن معايير الصور. يتحقق محركنا من أن الملف هو PNG أو JPEG صالح. إذا قدم الخادم المصدر تنسيقًا مختلفًا (مثل WebP أو SVG عبر امتداد غير متطابق)، يحاول Wawp تطبيع الدفق أو يرجع رمز خطأ مفيدًا.
- حقن الشرح (Caption Injection): على عكس المرفقات البسيطة، يتم التعامل مع الشروحات في Wawp كمواطنين نصيين من الدرجة الأولى. وهي تدعم ترميز UTF-8 الكامل وتنسيق Markdown الخاص بواتساب (
*bold*إلخ)، مما يتيح لك تقديم سياق مباشر بجانب المرئيات.
🛡️ أفضل الممارسات الاستراتيجية لتسليم الوسائط
1. نمط البيانات المسبقة (Pre-fetch Metadata Pattern)
لتقديم أفضل تجربة مستخدم، يجب أن يعرف تطبيقك ما يرسله قبل أن يصل إلى واجهة البرمجة الخاصة بنا.
- التحقق: قبل استدعاء API، قم بإجراء طلب
HEADلعنوان URL للصورة للتحقق منContent-LengthوContent-Type. هذا يمنع "الإرسال الأعمى" الذي يؤدي إلى معدلات فشل أعلى. - الصور المصغرة من جانب العميل: في واجهتك الأمامية، قم بعرض صورة مصغرة محلية للصورة. يعطي هذا المستخدم ملاحظات مرئية فورية بينما يتعامل محركنا مع التسليم الأصلي.
2. استراتيجية حجم الملف والدقة
بينما يدعم واتساب الملفات الكبيرة، فإن الكفاءة هي مفتاح التفاعل.
- الدقة المثالية: استهدف 1200x1600 بكسل. يوفر هذا تجربة حادة بملء الشاشة على معظم الأجهزة المحمولة دون استهلاك مفرط للنطاق الترددي.
- الضغط: استفد من نقطة النهاية
/v2/media/convertالخاصة بنا إذا كنت بحاجة إلى تقليل حجم الصور عالية الدقة أو ضغطها قبل إرسالها إلى جمهور كبير.
3. سهولة الوصول إلى URL والأمان
- الوصول العام: يجب أن يكون
file[url]متاحًا علنًا عبر HTTPS. لا يمكن لمحركنا تجاوز شاشات تسجيل الدخول أو الأصول المقفولة بـ VPN. - الروابط منتهية الصلاحية: إذا كنت تستخدم روابط S3 الموقعة، فتأكد من أن وقت انتهاء الصلاحية لا يقل عن 5 دقائق. يمنح هذا محرك Wawp وقتًا كافيًا لجلب الملف ومعالجته حتى في فترات ذروة الحركة.
🧩 حالات استخدام متقدمة
هوية الكتالوج
الصور مثالية لإرسال أبرز ميزات المنتج. اربط الصورة بشرح وصفي طويل يتضمن رابطًا لاتخاذ إجراء (CTA). نظرًا لأن الشرح يظل مرفقًا بالصورة عند إعادة التوجيه، فإن هويتك تظل سليمة.
الدعم الفني عبر المرئيات
استخدم الصور لإرسال مقارنات "قبل/بعد" أو مخططات التدفق. باستخدام حقل reply_to، يمكنك ربط صورة تعليمية مباشرة باستفسار محدد للمستخدم، مما يؤدي إلى إنشاء خيط دعم سلس.
🛠️ المزالق الشائعة والحلول
- أنواع Mime غير صالحة: إرسال ملف
.jpgمع رأسimage/gifهو خطأ تقني شائع. سيعيد Wawp خطأUnsupported Mimetype. تأكد دائمًا من صحة رؤوس الخادم الخاص بك. - غموض اسم الملف: استخدم أسماء ملفات وصفية ولكن نظيفة (مثلاً
invoice_123.jpg). تجنب استخدام رموز خاصة أو مسافات في معلمةfile[filename]لضمان التوافق عبر أنظمة تشغيل الملفات المختلفة. - مشكلة "الصورة المصغرة المعطلة": إذا ظهرت الصورة كمربع رمادي على هاتف المستلم، فهذا يعني عادةً أن عنوان URL المصدر قد انقطع في منتصف التنزيل أو أن الخادم أرجع رمز 404/500 أثناء مرحلة جلب Wawp.
ملخص الإمكانيات:
- تقديم صور JPEG و PNG عالية الدقة مع شروحات متكاملة.
- الجلب عن بُعد من أي عنوان URL آمن (HTTPS).
- دعم لتداخل الخيوط المعقدة عبر معلمة
reply_to. - تحقق موثوق من نوع MIME وتطبيع الرؤوس.
- تقارير نجاح متسقة مع توليد معرف
message_idفريد لتتبع التسليم.
البارامترات
قم بتهيئة المعاملات المطلوبة للتفاعل مع نقطة النهاية هذه. جميع وسائط الاستعلام والبيانات مدرجة أدناه مع تفاصيلها.
محتوى الطلب
يرسل كـ JSONstring | المعرف الفريد لجلسة واتساب مثال: | ||
string | رمز وصول API مثال: | ||
string | معرف واتساب للمستلم (JID). يدعم الأفراد (@c.us)، المجموعات (@g.us)، والقنوات (@newsletter). مثال: | ||
string | عنوان URL متاح للعامة عبر HTTPS للصورة مثال: | ||
string | اسم الملف للصورة مثال: | ||
string | نوع MIME (image/jpeg أو image/png) مثال: | ||
string | الشرح التوضيحي للصورة مثال: | ||
string | — | معرف الرسالة التي تقوم بالرد عليها مثال: |
أمثلة الكود
استخدم أمثلة الكود الجاهزة لدمج واجهة برمجة التطبيقات (API) في مشروعك بسرعة وكفاءة. اختر لغة البرمجة والمكتبة التي تفضلها.
الردود المتوقعة
استكشف كافة الردود والنتائج المحتملة من الخادم. قمنا بتوثيق كل كود حالة (Status Code) مع أمثلة للبيانات لتسهيل معالجة الأخطاء والنجاح.
Example
{
"_data": {
"id": {
"fromMe": true,
"remote": "000000000000@c.us",
"id": "MSG_ID_123456",
"_serialized": "true_000000000000@c.us_MSG_ID_123456"
},
"viewed": false,
"body": "BASE64_IMAGE_DATA",
"type": "image",
"t": 1759108866,
"from": {
"server": "c.us",
"user": "111111111111",
"_serialized": "111111111111@c.us"
},
"to": {
"server": "c.us",
"user": "000000000000",
"_serialized": "000000000000@c.us"
},
"ack": 0,
"isNewMsg": true,
"star": false,
"kicNotified": false,
"caption": "Here's your requested image.",
"deprecatedMms3Url": "https://example.com/media-url",
"directPath": "/media/direct/path/example",
"mimetype": "image/jpeg",
"filehash": "FILE_HASH_PLACEHOLDER",
"encFilehash": "ENC_FILE_HASH_PLACEHOLDER",
"size": 192487,
"mediaKey": "MEDIA_KEY_PLACEHOLDER",
"mediaKeyTimestamp": 1759108865,
"streamable": false,
"mediaHandle": null,
"isFromTemplate": false,
"pollInvalidated": false,
"isSentCagPollCreation": false,
"latestEditMsgKey": null,
"latestEditSenderTimestampMs": null,
"mentionedJidList": {
},
"groupMentions": {
},
"isEventCanceled": false,
"eventInvalidated": false,
"isVcardOverMmsDocument": false,
"isForwarded": false,
"isQuestion": false,
"questionReplyQuotedMessage": null,
"questionResponsesCount": 0,
"readQuestionResponsesCount": 0,
"labels": {
},
"hasReaction": false,
"disappearingModeInitiator": "chat",
"disappearingModeTrigger": "chat_settings",
"productHeaderImageRejected": false,
"lastPlaybackProgress": 0,
"isDynamicReplyButtonsMsg": false,
"isCarouselCard": false,
"parentMsgId": null,
"callSilenceReason": null,
"isVideoCall": false,
"callDuration": null,
"callCreator": null,
"callParticipants": null,
"isCallLink": null,
"callLinkToken": null,
"isMdHistoryMsg": false,
"stickerSentTs": 0,
"lastUpdateFromServerTs": 0,
"invokedBotWid": null,
"bizBotType": null,
"botResponseTargetId": null,
"botPluginType": null,
"botPluginReferenceIndex": null,
"botPluginSearchProvider": null,
"botPluginSearchUrl": null,
"botPluginSearchQuery": null,
"botPluginMaybeParent": false,
"botReelPluginThumbnailCdnUrl": null,
"botMessageDisclaimerText": null,
"botMsgBodyType": null,
"requiresDirectConnection": false,
"bizContentPlaceholderType": null,
"hostedBizEncStateMismatch": false,
"senderOrRecipientAccountTypeHosted": false,
"placeholderCreatedWhenAccountIsHosted": false,
"galaxyFlowDisabled": false,
"links": {
}
},
"mediaKey": "MEDIA_KEY_PLACEHOLDER",
"id": {
"fromMe": true,
"remote": "000000000000@c.us",
"id": "MSG_ID_123456",
"_serialized": "true_000000000000@c.us_MSG_ID_123456"
},
"ack": 0,
"hasMedia": true,
"body": "Here's your requested image.",
"type": "image",
"timestamp": 1759108866,
"from": "111111111111@c.us",
"to": "000000000000@c.us",
"deviceType": "android",
"isForwarded": false,
"forwardingScore": 0,
"isStatus": false,
"isStarred": false,
"fromMe": true,
"hasQuotedMsg": false,
"hasReaction": false,
"vCards": {
},
"mentionedIds": {
},
"groupMentions": {
},
"isGif": false,
"links": {
}
}Command Palette
Search for a command to run...