فرض تحديث ذاكرة التخزين المؤقت لـ Open Graph في فيسبوك
يمكنك فرض تحديث ذاكرة التخزين المؤقت لـ Open Graph في فيسبوك، لأن فيسبوك — وحده من بين المنصات الرئيسية — يوفر طريقة برمجية للطلب. إما استخدام زر Scrape Again في Sharing Debugger لرابط واحد، أو استدعاء نقطة نهاية scrape في Graph API مع رمز وصول للتطبيق. لا توجد طريقة لفرض ذلك في WhatsApp أو LinkedIn أو X: فهي لا تنشر مثل هذه الـ API لأي شخص.
ما يتعثر فيه الجميع
تقوم ميتا بتخزين معاينة الرابط مؤقتًا مفتاحها هو عنوان URL للصفحة، وتحتفظ بنسخة خاصة بها من الصورة. وهي لا تعيد قراءة صفحتك لتلاحظ أن og:image يشير الآن إلى مكان آخر.
لذا يفشل هذا المسار، وهو المسار الذي يحاوله معظم الناس:
غيّر الغلاف → عنوان
og:imageURL جديد → افترض أن فيسبوك سيلتقطه → لن يلتقطه.
عنوان URL جديد للصورة يكسر ذاكرة التخزين المؤقت لشبكة توزيع المحتوى (CDN) الخاصة بالصورة. لكنه لا يفعل شيئًا لذاكرة ميتا المؤقتة المرتبطة بالصفحة. لتحريك فيسبوك، يجب أن تخبر ميتا أن الصفحة تغيّرت.
| ذاكرة التخزين المؤقت | مفتاحها | تُمسح بواسطة |
|---|---|---|
| ذاكرة التخزين المؤقت لصفحتك / CDN | عنوان URL للصفحة | مسحها |
| ذاكرة ميتا المؤقتة لمعاينة الرابط | عنوان URL للصفحة | نقطة الزحف أو مصحح المشاركة (Sharing Debugger) |
| نسخة ميتا من الصورة | عنوان URL للصورة | عنوان URL جديد للصورة |
| شبكة توزيع المحتوى (CDN) لصورتك | عنوان URL للصورة | عنوان URL جديد للصورة |
الخيار 1 — أداة تصحيح المشاركة (صفحة واحدة، يدويًا)
افتح developers.facebook.com/tools/debug، والصق رابط الصفحة، ثم اضغط على Scrape Again. يقوم Meta بإعادة جلب الصفحة وإعادة بناء المعاينة المخزنة مؤقتًا.
وهي أيضًا أفضل أداة تحقق مجانية متاحة لديك، لأنها تعرض ما وجده Meta فعليًا وليس ما كنت تأمل أن يكون موجودًا: og:image المفقودة أو المكررة، الصور التي يتعذر الوصول إليها، التنسيقات غير المدعومة. أمران لن تقوم بهما: لا يمكنها التعامل مع WhatsApp (ذاكرة تخزين مؤقت منفصلة داخل تطبيق المستلم)، وليست أداة كتالوج — فهي تتعامل مع رابط واحد في كل مرة، مع حدود للمعدل، وبوجود مستخدم بشري أمامها.
الخيار 2 — واجهة Graph API (وهذا ما يستدعيه أي إضافة)
المكافئ البرمجي الذي تستخدمه FastOG هو طلب POST إلى واجهة Graph API مع scrape=true:
curl -X POST \
"https://graph.facebook.com/v21.0/?id=$(python3 -c 'import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=""))' 'https://your-store.com/product/example')&scrape=true&access_token=${APP_ID}|${APP_SECRET}"
أربع تفاصيل مهمة:
idهو عنوان URL للصفحة، وليس عنوان URL للصورة. تقوم Meta بتخزين ذاكرة التخزين المؤقت الخاصة بها استنادًا إلى الصفحة، لذا فإن إرسال إشارة إلى عنوان الصورة لا يُحدّث شيئًا.- مطلوب رمز مميز (token) — تطلب Meta رمزًا مميزًا على هذه النقطة منذ أكتوبر 2017. رمز وصول للتطبيق بالصيغة
{app_id}|{app_secret}كافٍ، ولا يتطلب تسجيل دخول المستخدم، وهذا بالضبط ما يجعل الاستدعاء ممكنًا من وظيفة خلفية (background job). - إصدارات واجهة Graph API تتغير. تثبّت FastOG إصدارًا مُختبَرًا من واجهة Graph API؛ تحقق من وثائق Meta الحالية وسجل التغييرات قبل تثبيت إصدار في الكود الخاص بك.
- تعامل معها كأفضل جهد (best-effort). تفرض Meta حدودًا على معدل استدعاءات الزحف (scrape calls)، والرفض يعني فقط أن Facebook يُحدّث وفقًا لجدوله الخاص بدلاً من التحديث الفوري — الوسوم الموجودة على صفحتك صحيحة بالفعل.
نظرًا لأنها تخضع لحدود المعدل، لا تُطلقها مباشرةً عند كل حفظ لكتالوج كبير. ضعها في قائمة انتظار، وأزل التكرار حسب عنوان URL بحيث لا تستهلك عمليات الحفظ المتكررة لنفس المنتج غير المتغير حد المعدل.
الخيار 3 — إضافة تقوم بذلك نيابةً عنك
تنقسم الإضافات التي تُسوَّق على أنها "تحديث لذاكرة التخزين المؤقت لـ Open Graph" إلى مجموعتين، وواحدة فقط منهما يمكنها إصلاح مشكلة فيسبوك:
| الآلية | ما الذي تمسحه | هل تُصلح معاينة فيسبوك القديمة؟ |
|---|---|---|
تُلحق سلسلة استعلام متغيرة بعنوان URL للصورة (?v=timestamp) |
شبكة توزيع المحتوى (CDN) لصورتك | لا — ذاكرة Meta المؤقتة مرتبطة بالصفحة |
| تستدعي نقطة نهاية التجريف (scrape endpoint) لعنوان URL للصفحة | ذاكرة Meta المؤقتة للمعاينة | نعم |
قبل تثبيت أي إضافة، تحقق من أي النوعين هي. معلمة الطابع الزمني هي إصلاح حقيقي لصورة قديمة وليست إصلاحًا لبطاقة فيسبوك قديمة.
إضافة FastOG لـ WooCommerce تقوم بالخيار الثاني، ولا تحتاج إلى ضبط أي إعدادات. تسجّل الإضافة خطافات الويب (webhooks) الأصلية لمنتجات WooCommerce، لذا فإن حفظ منتج يُطلق إعادة تجريف من Meta لرابط المنتج الدائم — في قائمة انتظار، مع إزالة التكرارات ضمن نافذة زمنية قصيرة، وبأفضل جهد ممكن بحكم التصميم بحيث لا يفشل الحفظ أبدًا عند الرفض. تنطبق على صفحات المنتجات (product.created / product.updated)؛ ولا تشمل تعديلات الفئات والمدونة.
أما جانب الصورة فيُعالَج بشكل منفصل، وبطريقة مختلفة عن جميع المنافسين: لأن عنوان URL لغلاف FastOG يحتوي على القيم التي أنتجته، فإن تعديل السعر أو الصورة يُنشئ عنوان URL جديدًا للغلاف. لا يمكن لـ Meta إعادة تقديم صورة لم يعد عنوانها موجودًا.
حيث لا يكفي فيسبوك
| المنصة | هل يمكنك فرض تحديث؟ | ما الذي يحدث فعليًا |
|---|---|---|
| فيسبوك | نعم — أداة التصحيح أو scrape=true |
يطلب إعادة الزحف؛ يختلف وقت الانتشار |
| واتساب | لا | يتم تخزين المعاينة مؤقتًا في تطبيق المستلم؛ لا توجد واجهة برمجة تطبيقات |
| لينكد إن | لا توجد واجهة برمجة تطبيقات برمجية موثقة | يعيد القراءة وفق جدوله الخاص؛ لا يوجد ضمان زمني عام هنا |
| إكس / تويتر | لا توجد واجهة برمجة تطبيقات برمجية موثقة | يعيد القراءة وفق جدوله الخاص؛ لا يوجد ضمان زمني عام هنا |
| سلاك، ديسكورد | لا | مخازن مؤقتة قصيرة العمر تختفي من تلقاء نفسها خلال دقائق إلى ساعات |
إذا كانت المعاينة قديمة على واتساب، فالحل ليس أداة فيسبوك — بل تصحيح إعدادات المتجر بحيث تكون القراءة التالية صحيحة.
عندما تظهر الصورة القديمة بعد نجاح عملية الجلب
اتبع هذه القائمة بالترتيب:
- هل ما تزال الصفحة تقدم الوسم القديم؟
curl -s https://your-store.com/product/example | grep -i 'og:image'— صفحة HTML مخزنة مؤقتًا تحتوي علىog:imageقديم تُفشل عملية الجلب بالكامل. امسح ذاكرة التخزين المؤقت للصفحة. - هل تطبع الصفحة أكثر من وسم
og:imageواحد؟ إذا كان هناك إضافتان (plugins) وكل واحدة تصدر وسمًا، فإن الزاحف (crawler) يأخذ أول وسم يقرؤه. احسب عددها. - هل الصورة قابلة للوصول وغير محجوبة؟ يجب أن يُرجع
curl -I <image-url>رمز200معContent-Typeصورة. تلتزم زواحف التواصل الاجتماعي بـrobots.txt، لذا فإن الصورة الموجودة على مسارDisallow:تفشل بطريقة تبدو كملف تالف — ولن يتمكنcurlمن إعادة إنتاجها أبدًا، لأنcurlيتجاهلrobots.txt. - هل تغيّر رابط الصورة فعليًا؟ إذا لم يتغير، فالمحتوى لم يتغير أيضًا — تحقق من أن تعديل السعر/الصورة وصل إلى المصدر الذي تُشتق منه البطاقة.
- افحص أداة التصحيح (debugger) مرة أخرى. إذا كانت الآن تعرض الصورة الجديدة وما زال Facebook يعرض البطاقة القديمة، فأنت تنظر إلى انتشار Facebook الخاص، وليس إلى وسومك.
الأسئلة الشائعة
هل توجد واجهة برمجة تطبيقات رسمية لمسح ذاكرة التخزين المؤقت لـ Open Graph في فيسبوك؟
يستخدم FastOG نقطة نهاية scrape (POST https://graph.facebook.com/{version}/?id={page-url}&scrape=true&access_token={token}). توثّق Meta أداة Sharing Debugger وتدفق الزحف البرمجي؛ وقد يتغير شكل نقطة النهاية الدقيق وإصدار Graph API، لذا تحقق منها وفقًا لوثائق Meta الحالية قبل تنفيذها بنفسك.
هل تتطلب أداة Sharing Debugger تطبيقًا أو رمزًا مميزًا؟
لا. إنها أداة عامة وتعمل مع أي رابط عام. ما لا يمكنها فعله هو العمل وفق جدول زمني أو تغطية كتالوج كامل.
هل ستكلفني إعادة الزحف عرض FastOG؟
عادةً لا. رابط الصورة المصغرة مشتق من المحتوى، لذا إذا لم يتغير المحتوى فلن يتغير الرابط أيضًا، ويكون الجلب إصابة في ذاكرة التخزين المؤقت لا تكلف أي عرض. إذا تغير السعر، تغير الرابط — وهذا عرض جديد واحد، وهو العرض الذي أردته.
هل إعادة الزحف عبر فيسبوك تصلح معاينة واتساب؟
لا. إنهما ذاكرتا تخزين مؤقت منفصلتان. ما زال من المفيد استخدام أداة تصحيح فيسبوك كـ مدقق — فهي تجلب الصفحة بنفس الطريقة التي سيجلبها بها واتساب وتبلغ بما وجدته — لكنها لا تستطيع تحديث ذاكرة واتساب.
كم من الوقت يحتفظ فيسبوك بمعاينة إذا لم أقم بإرسال إشعار؟
توثّق Meta فترة إعادة زحف قياسية تبلغ حوالي 24 ساعة، لكن وقت الانتشار الدقيق قد يختلف. لهذا السبب توجد أداة التصحيح ومسار الزحف البرمجي.
هل يجب أن أرسل إشعارًا لكل منتج بعد استيراد كتالوج؟
هذا هو الغرض من قائمة الانتظار. إرسال طلب واحد لكل منتج بشكل مباشر سيصل إلى حد معدل الطلبات في Meta ويبطئ طلب التاجر؛ وعند وضعه في قائمة الانتظار مع إزالة التكرارات، يتم تصفيف الكتالوج دون ضرر.
ماذا لو رفضت Meta الطلب؟
لن يحدث أي خلل. الطلب المرفوض أو المحدود بالمعدل يعني أن فيسبوك سيحدّث وفق جدوله الخاص بدلاً من التحديث الفوري — العلامات على الصفحة صحيحة بالفعل، ولهذا تكون المكالمة بأفضل جهد وليست اعتمادًا صارمًا.
ذات صلة
جرّبه مجانًا — لا حاجة للتسجيل
معاينة واختبار صور OG الديناميكية في ثوانٍ.
افتح أداة اختبار OG المجانية