إرسال رابط معاينة (Link Preview)
إرسال رسالة مع بطاقة معاينة رابط غنية ومخصصة.
تسجيل الدخول مطلوب
سجل الدخول لاستبدال المعرفات (Instance ID) ورمز الوصول (Access Token) بمعلومات حسابك الحقيقي لاختبار ال API مباشرة.
تسجيل الدخوللا توجد معاملات استعلام مطلوبة
هذه النهاية الطرفية لا تتوقع بيانات في الرابط.
توصيات
تأكد من أن الرابط المستهدف يحتوي على علامات Open Graph (OG) صالحة.
ارجع إلى رسالة نصية قياسية إذا فشل إنشاء المعاينة.
سلطة النقر: إتقان محرك معاينة الروابط الغنية
في المخطط الرأسي للرسائل المليئة بالنصوص والوسائط، تعد "معاينة الرابط الغنية" (/v2/send/link-preview) الطريقة الأكثر فعالية لتوجيه الزيارات من دردشة واتساب إلى موقع ويب خارجي. بينما تقوم التطبيقات القياسية بإنشاء معاينات فقط عندما يكتب الإنسان يدوياً رابطاً ببطء، يتيح لك Wawp برمجياً فرض بطاقة معاينة عالية الدقة. هذا أمر ضروري للإعلانات المهنية، وروابط المنتجات، وصفحات الهبوط المخصصة حيث تريد التحكم الكامل في الهوية البصرية والسرد.
🏗️ محرك إنشاء بطاقات الروابط
محرك الروابط في Wawp لا يكتفي "بكشط" الوجهة؛ بل يقوم بنشاط بتركيب بطاقة OpenGraph اصطناعية:
- تجاوز البيانات الوصفية: على عكس مشاركة الروابط العادية، يتيح لك Wawp تجاوز
titleوdescriptionوthumbnailحتى لو لم يكن لموقع الوجهة بيانات وصفية أو كان يحظر برامج الزحف. يضمن ذلك أن يظهر رابطك دائماً باحترافية. - جلب الصور الثنائية: يقوم المحرك بجلب صورتك المصغرة المخصصة (
thumbnail) وتحسينها لتطبيق واتساب للهاتف المحمول. يدعم صيغ JPEG و PNG، مما يضمن تحميل الصورة المصغرة فوراً حتى في الاتصالات الضعيفة. - المعاينة عالية الجودة: يؤدي تفعيل
linkPreviewHighQuality: trueإلى تشغيل وضع عرض متخصص. إذا كان هاتف المستلم يدعم ذلك، فسيقوم واتساب بعرض بطاقة صورة أكبر بكثير (تشبه رسالة صور أصلية) بدلاً من الأيقونة المربعة الصغيرة. هذا يزيد بشكل كبير من "المساحة البصرية" التي تشغلها رسالتك في واجهة المستخدم.
🛡️ أفضل الممارسات الاستراتيجية لمعدلات النقر (CTR)
1. العنوان كـ "توجيه للعمل"
يجب أن يكون العنوان (title) موجهاً وليس مجرد تسمية.
- مثال: بدلاً من "مدونتنا"، استخدم "🔥 اقرأ الآن: 5 طرق لتوسيع API الخاص بك".
- تأثير تجربة المستخدم: يمكن للعناوين المليئة بالحركة جنباً إلى جنب مع بطاقة معاينة عالية الجودة زيادة معدل النقر بنسبة تصل إلى 400% مقارنة برابط نصي خام.
2. تكوين الصورة المصغرة
الصورة المصغرة هي المرساة البصرية للبطاقة.
- النسبة: استخدم صوراً بنسبة 1:1 (مربعة) للمعاينة القياسية أو 1.91:1 (عريضة) إذا كنت تستخدم علامة
linkPreviewHighQuality. - الوضوح: تجنب وضع نصوص صغيرة في الصورة المصغرة. نظراً لأن الصور المصغرة يتم ضغطها وعرضها بحجم صغير على شاشات الجوال، استخدم أيقونات بارزة أو صوراً واضحة تمثل وجهة الرابط.
3. شفافية الروابط ونظافتها
- تضمين النص: يتيح لك حقل
textتقديم رسالة سابقة (مثلاً "اطلع على هذا:"). نوصي بتكرار الرابط في نهاية حقل النص كبديل احتياطي في الحالات النادرة التي يكون فيها جوال المستخدم معطلاً لمعاينة الروابط. - التتبع: استخدم معلمات UTM في رابطك (
url) (مثلاً?utm_source=whatsapp&utm_medium=wawp). يتيح لك ذلك قياس مدى فعالية حملات API الخاصة بك في لوحة تحليلاتك.
🧩 حالات استخدام متقدمة
معاينات الدفع الديناميكية
عندما يضيف مستخدم عنصراً إلى سلة التسوق الخاصة به، أرسل له معاينة رابط لصفحة الدفع. استخدم صورة مصغرة (thumbnail) مخصصة تظهر المنتج الذي يشتريه بالضبط. يخلق هذا مساراً شخصياً وموثوقاً للشراء مباشرة داخل الدردشة.
تقارير مخصصة ومحتوى محمي
إذا كنت تقدم تقارير PDF مخصصة أو روابط آمنة للوحة التحكم، استخدم /v2/send/link-preview لإنشاء "بطاقة لوحة تحكم". استخدم الوصف لإظهار مقتطف من بيانات المستخدم (مثلاً "توفيراتك للربع الأول: 1,250 دولاراً")، مما يشجعهم على النقر للوصول للموقع الكامل.
🛠️ المزالق الشائعة والحلول
- برامج الزحف المحظورة: إذا كنت تعتمد على المعاينة التلقائية (عدم توفير صورة مصغرة مخصصة)، فقد تفشل شبكة واتساب في كشط المواقع المحمية بـ Cloudflare أو شاشات تسجيل الدخول. دائماً قدم رابط صورة مصغرة مخصصة لضمان موثوقية 100%.
- أخطاء نوع الصورة: استخدام رابط صورة مصغرة يشير لملف WebP أو SVG سيؤدي غالباً لظهور أيقونة "رابط" عامة بدون صورة. التزم بصيغة JPEG القياسية لأعلى توافق.
- متطلبات البروتوكول: يجب أن يستخدم كل من
urlوthumbnailبروتوكول HTTPS. الروابط غير الآمنة (HTTP) غالباً ما يتم رفضها أو تظهر تحذيرات أمنية للمستلم.
ملخص الإمكانيات:
- فرض بطاقات روابط تفاعلية عالية الدقة برمجياً مع أو بدون دعم OpenGraph.
- تحكم كامل في تجاوز البيانات الوصفية للعنوان والوصف والصورة المصغرة.
- وضع "الجودة العالية" للبطاقات البصرية الكبيرة ذات الوضوح الشديد.
- تحويل سلس من الروابط الخام إلى عناصر تفاعلية تشبه "التطبيقات".
- دعم متكامل للخيوط عبر معلمة
reply_toلمشاركة سياقية. - تتبع تسليم موثوق مع إنشاء
message_idمتكامل.
البارامترات
قم بتهيئة المعاملات المطلوبة للتفاعل مع نقطة النهاية هذه. جميع وسائط الاستعلام والبيانات مدرجة أدناه مع تفاصيلها.
محتوى الطلب
يرسل كـ JSONstring | المعرف الفريد لجلسة واتساب مثال: | ||
string | رمز وصول API الخاص بك مثال: | ||
string | رقم الهاتف المستهدف مع كود الدولة مثال: | ||
string | الرابط المراد معاينته مثال: | ||
string | نص اختياري مرافق للرابط. مثال: | ||
string | رابط لصورة مصغرة مخصصة (JPEG/PNG) مثال: | ||
string | عنوان مخصص لبطاقة المعاينة مثال: | ||
string | وصف مخصص لبطاقة المعاينة مثال: | ||
boolean | محاولة إنشاء معاينة كبيرة عالية الجودة مثال: | ||
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...