مرجع API تحميل المرفقات

تحذير: تنتهي صلاحية معرفات المرفقات بعد 90 يومًا. بعد انتهاء صلاحية معرف المرفق، ستحتاج إلى إعادة تحميل الوسائط للحصول على معرف مرفق جديد.

على الرغم من أن المرفقات القابلة لإعادة الاستخدام ستنتهي صلاحيتها بعد 90 يومًا ولا يمكن إعادة إرسالها، فإن المرفقات الموجودة في سلاسل الرسائل لن تنتهي صلاحيتها أبدًا وستكون مرئية حتى يحذف المستخدم الرسالة من سلسلة الرسائل. إذا سمحت لك حالة الاستخدام، فيمكنك دمج خطوات التحميل والإرسال كما تم ذكره أدناه لتجنب مشكلة TTL هذه.

تتيح لك API تحميل المرفقات، تحميل الأصول التي يمكن إرسالها في الرسائل في وقت لاحق. وهذا يسمح لك بتجنُّب الحاجة إلى تحميل الملفات شائعة الاستخدام عدة مرات. تدعم واجهة API حفظ الأصول من عنوان URL، ومن نظام الملفات المحلي الخاص بك.

يمكنك أيضًا استخدام Send API؛ لإرسال رسالة بها مرفق وحفظ المرفق للاستخدام لاحقًا في الوقت نفسه. لمزيد من المعلومات، راجع قسم التحميل والإرسال أدناه.

تحميل مرفق

لتحميل مرفق، أرسل طلب POST إلى نقطة النهاية /Your-page-id/message_attachments مع message.attachment مع type وpayload. لتتمكن من استخدام الأصل في رسائل متعددة، يمكنك تعيين payload.is_reusable إلى true.

مثال على طلب للتحميل من عنوان URL

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_access_token، بقيمك.

curl -X POST "https://graph.facebook.com/v21.0/Your-page-id/message_attachments" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image", 
               "payload":{
                 "url":"https://your-url.com/image.jpg",
                 "is_reusable": true
               }
             }
           }
         }'

مثال على طلب للتحميل من ملف

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_access_token، بقيمك.

curl -X POST -H "Content-Type: application/json" -d '{
   "message": {
     "attachment": {
       "type": "image"
     }
   },
   "filedata": "@/path-to-your-file/image.jpg",
   "type": "image/png"
  }' "https://graph.facebook.com/v21.0/{PAGE_ID}/message_attachments?access_token={PAGE_ACCESS_TOKEN}"

عند نجاح العملية، سيتلقى التطبيق كائن JSON مع تعيين attachment_id على معرف المرفق لاستخدامه في الرسائل.

{"attachment_id": "Your-attachment-ID"}

إرسال رسالة مع أصل تم تحميله

لإرسال رسالة بأصل قمت بتحميله مسبقًا، وتم تحميله مع message.attachment.payload.is_reusable مع تعيينه إلى true، أرسل طلب POST إلى نقطة النهاية /Your-page-id/messages مع recipient.id، والكائن message.attachment مع type وpayload.attachment_id.

مثال على طلب للتحميل من ملف

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_access_token، بقيمك.

curl -X POST -H "Content-Type: application/json" -d '{
    "recipient": {
      "id": "{PSID}"
    },
    "message": {
      "attachment": {
        "type": "image",
        "payload": {
          "attachment_id": "Your-attachment-ID"
        }
      }
    }
  }' "https://graph.facebook.com/v21.0/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"

عند نجاح العملية، سيتلقى التطبيق استجابة JSON مع تعيين success إلى true.

{"success": "true"}

التحميل والإرسال

يمكنك أيضًا تحميل الوسائط وإرسالها في طلب API واحد.

تحذير:لا تقم بتعيين is_public=true في حمولة البيانات لهذه الحالة. تكون المرفقات في سلسلة رسائل المستخدم خاصة دائمًا.

مثال على طلب للتحميل من عنوان URL

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_access_token، بقيمك.

curl -X POST -H "Content-Type: application/json" -d '{
   "recipient": {
     "id": "{PSID}"
   },
   "message": {
     "attachment": {
       "type": "image",
       "payload": {
         "url": "https://your-url.com/image.jpg"
       }
     }
   }
  }' "https://graph.facebook.com/v21.0/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"

عند نجاح العملية، سيتلقى التطبيق استجابة JSON مع تعيين success إلى true.

{"success": "true"}

الخصائص

بالنسبة إلى المرفقات من عنوان URL، يمكنك توفير الخصائص التالية في نص الطلب ككائن JSON. بالنسبة إلى المرفقات من ملف، يمكنك إرسال الخصائص كبيانات نموذج.

message

Description of the message to be sent.
Property Type Description

message.attachment

Object

An object describing attachments to the message.

message.attachment

الخاصية النوع الوصف

type

String (سلسلة)

تمثل نوع المرفق. ويجب أن تكون أيًا مما يلي:

  • image
  • video
  • audio
  • file

payload

Object (كائن)

كائن payload يصف المرفق.

message.attachment.payload

الخاصية النوع الوصف

url

String (سلسلة)

اختياري. تمثل عنوان URL للملف المطلوب تحميله. أقصى حجم للملف هو 8 ميجابايت للصور و25 ميجابايت لجميع أنواع الملفات الأخرى (بعد الترميز). ويتم تعيين مهلة على 75 ثانية لمقاطع الفيديو و10 ثوانٍ لجميع أنواع الملفات الأخرى.

is_reusable

Boolean (قيمة منطقية)

اختياري، يتم الإعداد افتراضيًا على false.لا تقم بتعيين true إذا كنت تحاول إجراء التحميل والإرسال في استدعاء API واحد.

قم بالتعيين على true فقط عند التحميل والإرسال في خطوات منفصلة. تنتهي صلاحية معرفات المرفق بعد 90 يومًا. يمكنك إعادة تحميل الوسائط للحصول على معرف مرفق جديد بعد 90 يومًا.

على الرغم من أن المرفقات القابلة لإعادة الاستخدام ستنتهي صلاحيتها بعد 90 يومًا ولا يمكن إعادة إرسالها، فإن المرفقات الموجودة في سلاسل الرسائل لن تنتهي صلاحيتها أبدًا وستكون مرئية حتى يحذف المستخدم الرسالة من سلسلة الرسائل.

رموز الأخطاء

رمز الخطأالرمز الفرعيالرسالة

100

2018074

من المحتمل أن يكون المعرف غير صالح أو أنك لا تمتلك المرفق.

100

2018008

فشل الحصول على الملف من عنوان url. تحقق من أن عنوان URL صالح، ويتضمن شهادة SSL صالحة وتحقق كذلك من حجم الملف، وأن الخادم يستجيب بسرعة كافية لتجنب حالات انتهاء المهلة.

100

2018294

انتهت مهلة تحميل الفيديو أو قد يكون الفيديو تالفًا. لاحظ أنه إذا تعذر الحصول على الفيديو في غضون 75 ثانية، فستنتهي مهلته

100

2018047

فشل تحميل المرفق. من الأسباب الشائعة التي تؤدي إلى ظهور هذا الخطأ، أن يكون نوع الوسائط المتوفر غير متطابق مع نوع الملف المتوفر في عنوان URL