> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# حجب زاحف الوسائط الخاص بـ Meta (Instagram / Threads)

> كيفية إصلاح رمز الخطأ 440 (وما يرتبط به من Instagram 138 / Threads 379) الناجم عن robots.txt أو قواعد حظر الروبوتات التي تحجب زاحف الوسائط الخاص بـ Meta.

يُعاد رمز الخطأ **440** (وما يرتبط به من رمز Instagram **138** / رمز Threads **379**) عندما يتعذّر على زاحف النشر الخاص بـ Meta تنزيل عنوان URL الخاص بالوسائط — وذلك في الغالب لأن `robots.txt` أو قاعدة لحظر الروبوتات على خادمك ترفض الزاحف.

<Note>
  تتناول هذه الصفحة حالات الفشل التي تشير رسالة الخطأ أو التفاصيل الخاصة بها إلى أن شبكة التواصل الاجتماعي لم تتمكن من تنزيل الوسائط، وعادة ما تشير إلى `facebookexternalhit`، أو `robots.txt`، أو `"Restricted by robots.txt"`، أو `"HTTP error code 403"`، أو خطأ Meta `2207052`. أما أخطاء نسبة الأبعاد أو التنسيق في رمز Instagram 138، فراجع بدلًا من ذلك [إرشادات وسائط Instagram](/media-guidelines/instagram) أو [إرشادات وسائط Threads](/media-guidelines/threads).
</Note>

## الأعراض

عند حظر الزاحف، سترى أخطاء مثل هذه:

```json Error 440 (primary) theme={"system"}
{
  "status": "error",
  "errors": [{
    "action": "post",
    "code": 440,
    "message": "The social network could not download media from this URL (for example Instagram/Meta error 2207052). Ensure the file is publicly reachable by the platform's crawlers (e.g. facebookexternalhit), via media bucket's robots.txt file, not only in a browser.",
    "details": "Media download has failed.: The media could not be fetched from the provided URI...",
    "platform": "instagram",
    "status": "error"
  }],
  "postIds": [],
  "id": "..."
}
```

```json Instagram Error 138 (fallback — less specific upstream response) theme={"system"}
{
  "status": "error",
  "errors": [{
    "retryAvailable": true,
    "status": "error",
    "code": 138,
    "details": "Media download has failed.: The media could not be fetched from the provided URI. Video download failed with: HTTP error code 403. Restricted by robots.txt",
    "action": "post",
    "platform": "instagram",
    "message": "Instagram Error: Instagram cannot process your post at this time. Please try your post again."
  }],
  "postIds": [],
  "id": "..."
}
```

```json Threads Error 379 theme={"system"}
{
  "status": "error",
  "errors": [{
    "status": "error",
    "code": 379,
    "message": "Error posting to Threads.",
    "action": "post",
    "platform": "threads"
  }],
  "postIds": [],
  "id": "..."
}
```

<Note>
  الرمز **440** هو رمز Ayrshare المُخصص لهذا الفشل، وتذكر رسالته صراحةً `facebookexternalhit` و`robots.txt` — فإذا رأيت 440، فأنت في الصفحة المناسبة. ويُصدَر الرمز **138** للسبب الجذري ذاته عندما تكون الاستجابة القادمة من المصدر أقل تحديدًا؛ كما يُستخدم الرمز 138 لمشكلات نسبة الأبعاد/التنسيق، لذا يمكن تمييز صيغة جلب الوسائط بوجود `"Restricted by robots.txt"` أو `"HTTP error code 403"` في حقل `details`. أما الرمز **379**، فلا يتضمن حقل `details` — وإذا فشل Threads بجانب Instagram 440 أو 138، فعادة ما يكون السبب الجذري واحدًا.
</Note>

## لماذا يحدث هذا

عندما تنشر على Instagram أو Threads عبر Ayrshare، تجلب خوادم Meta وسائطك من عنوان URL الذي تقدّمه. ويستخدم هذا الجلب من جانب الخادم User-Agent الخاص بـ `facebookexternalhit`. فإذا رفض ملف `robots.txt` الخاص بخادمك هذا الزاحف — أو حجبته قاعدة WAF/حماية من الروبوتات — فلن يتمكن Meta من تنزيل الملف وسيفشل النشر.

يستخدم النشر على Facebook Page مسار استيعاب مختلفًا، وهو ما يفسّر لماذا قد يعمل `mediaUrl` نفسه مع Facebook ويفشل مع Instagram وThreads.

## الحل: حدّث ملف robots.txt

### الأسلوب الموصى به: السماح لـ Meta صراحةً وإبقاء الآخرين مفتوحين

أضف هذه القواعد إلى ملف `robots.txt`:

```txt robots.txt theme={"system"}
User-agent: facebookexternalhit
Allow: /

User-agent: *
Allow: /
```

يسمح هذا صراحةً لزاحف Meta مع إبقاء موقعك مفتوحًا للزواحف الأخرى (Google وBing وغيرها).

### أسلوب متقدّم: التقييد على ناشري التواصل الاجتماعي فقط

إذا كنت تريد حجب معظم الزواحف مع السماح لمنصات التواصل الاجتماعي:

```txt robots.txt theme={"system"}
User-agent: facebookexternalhit
Allow: /

User-agent: Twitterbot
Allow: /

User-agent: LinkedInBot
Allow: /

User-agent: Pinterest
Allow: /

User-agent: *
Disallow: /
```

<Warning>
  استخدم كتلة واحدة `User-agent: *` وضعها في نهاية الملف. الزواحف المتوافقة مع RFC 9309 تدمج كتل الأحرف البديلة المتعددة في واحدة، ولكن ليس كل مُحلِّل في الواقع متوافقًا مع RFC — وتكرار كتل الأحرف البديلة سبب شائع في إسقاط القواعد أو تطبيقها بشكل غير متسق.
</Warning>

## تحقق من أن Meta يستطيع جلب عنوان URL الخاص بك

قبل إعادة محاولة النشر، تحقق من أن زاحف Meta يمكنه الآن الوصول إلى وسائطك. قم بتشغيل الأمر التالي، مع استبدال `$URL` بعنوان URL الكامل للوسائط:

```bash theme={"system"}
curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" \
  -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" \
  "$URL"
```

<ul class="custom-bullets">
  <li>**الاستجابة السليمة:** HTTP 200 أو 206 مع بيانات ثنائية في محتوى الاستجابة.</li>
  <li>**الاستجابة المحجوبة:** HTTP 403 أو صفحة فارغة/صفحة خطأ HTML.</li>
</ul>

<Note>
  وفقًا لوثائق Meta، قد تستغرق تغييرات `robots.txt` ما يصل إلى 24 ساعة لتنتشر عبر ذاكرة التخزين المؤقتة لزاحف Meta. وإذا نجح التحقق ولكن ما زال منشورك يفشل، فانتظر وأعد المحاولة لاحقًا.
</Note>

## إذا لم يحل هذا المشكلة

إذا حدّثت `robots.txt` وتحققت باستخدام أمر `curl` ولكن ما زلت ترى حالات فشل:

<ul class="custom-bullets">
  <li>**تأخير الانتشار لمدة 24 ساعة** — يقوم Meta بتخزين `robots.txt` مؤقتًا. انتظر حتى 24 ساعة بعد إجراء التغييرات قبل إعادة المحاولة.</li>
  <li>**قواعد WAF أو مكافحة الروبوتات** — قد تحجب خدمات مثل Cloudflare Bot Fight Mode، ومجموعات قواعد الروبوتات المُدارة في AWS WAF، والخدمات المماثلة نطاقات عناوين IP الخاصة بزاحف Meta حتى لو كان `robots.txt` يسمح بها. تحقق من سجلات WAF وأضف استثناءً لـ `facebookexternalhit`.</li>
  <li>**حماية الروابط الساخنة / التحقق من Referer** — تحجب بعض شبكات CDN الطلبات من عناوين IP لمراكز البيانات أو الطلبات التي بدون رأس `Referer` صالح. أضف زاحف Meta إلى القائمة البيضاء أو عطّل حماية الروابط الساخنة لمسارات الوسائط.</li>
  <li>**انتهاء صلاحية عناوين URL الموقّعة / المُوقّعة مسبقًا** — إذا كان عنوان URL الخاص بالوسائط يحتوي على طابع زمني لانتهاء الصلاحية (شائع مع عناوين URL الموقّعة مسبقًا في S3)، فتأكد من أنه لا ينتهي قبل أن يتمكن زاحف Meta من جلبه. بالنسبة للمنشورات المجدولة، أنشئ عناوين URL تظل صالحة لفترة كافية بعد الوقت المجدول.</li>
  <li>**استضافة الوسائط المُدارة** — إذا كنت تستخدم خدمة مثل Cloudinary أو Imgix أو ما شابه حيث لا يمكنك تحرير `robots.txt`، فراجع وثائقهم للحصول على إعداد السماح لزاحف Meta/Facebook.</li>
</ul>

إذا لم يحل أي من ذلك المشكلة، [تواصل مع دعم Ayrshare](https://www.ayrshare.com/contact) وقم بتضمين:

* `postId` الفاشل من استجابة الخطأ
* مخرجات أمر `curl` للتحقق أعلاه
* محتويات ملف `robots.txt` الخاص بك

## إعادة محاولة منشور فاشل

بمجرد حل مشكلة وصول الزاحف، أعد محاولة المنشور الفاشل باستخدام [نقطة نهاية إعادة محاولة النشر](/apis/post/retry-post).

## اطّلع أيضًا

<ul class="custom-bullets">
  <li>[Instagram API](/apis/post/social-networks/instagram)</li>
  <li>[Threads API](/apis/post/social-networks/threads)</li>
  <li>[إرشادات وسائط Instagram](/media-guidelines/instagram)</li>
  <li>[إرشادات وسائط Threads](/media-guidelines/threads)</li>
  <li>[رموز أخطاء Ayrshare](/errors/errors-ayrshare#media-fetch--crawler-access-errors)</li>
  <li>[فشل نشر الفيديو](/help-center/technical-support/video_publishing_fails)</li>
</ul>
