إعداد رمز تطبيق لـ Instagram oneboxes

:warning: تحديثات مهمة منذ كتابة هذا الدليل:

  1. المراجعة التطبيقية مطلوبة الآن. منذ سبتمبر 2021، تتطلب Meta أن يجتاز تطبيقك المراجعة التطبيقية وأن تتم الموافقة عليه على إذن قراءة oEmbed (يُسمى الآن Meta oEmbed Read للتطبيقات التي تم إنشاؤها بعد 8 أبريل 2025). بدون هذا، ستفشل استدعاءات واجهة برمجة تطبيقات oEmbed. راجع إرشادات تقديم المراجعة التطبيقية من Meta للحصول على نصائح حول الحصول على الموافقة.

  2. قد لا يتم عرض مربعات Instagram بشكل صحيح. اعتبارًا من 3 نوفمبر 2025، أزالت Meta الحقول thumbnail_url و thumbnail_width و thumbnail_height و author_name من استجابات Instagram oEmbed. يعتمد رمز onebox الخاص بـ Discourse حاليًا على هذه الحقول (lib/onebox/engine/instagram_onebox.rb)، مما قد يؤدي إلى ظهور تضمينات تالفة أو فارغة.

  3. يتم دعم عناوين URL للمشاركات و IGTV فقط. يدعم Discourse حاليًا فقط عناوين URL /p/ (مشاركة) و /tv/ (IGTV) الخاصة بـ Instagram. لا يتم دعم عناوين URL لـ Reels (/reel/).

  4. تم تغيير واجهة مستخدم (UI) وحدة تحكم مطوري فيسبوك بشكل كبير منذ التقاط لقطات الشاشة أدناه في ديسمبر 2020. لا تزال الخطوات العامة متشابهة، ولكن الشاشات والخيارات المحددة قد تبدو مختلفة.


إذا كان لديك بالفعل تطبيق Facebook مرتبط بموقع Discourse الخاص بك، فانتقل لأسفل إلى إضافة oEmbed إلى تطبيق Facebook الخاص بك.

إذا لم يكن لديك حساب مطور Facebook وتطبيق Facebook:

انتقل إلى https://developers.facebook.com/. سيُطلب منك تسجيل الدخول إلى حساب Facebook الخاص بك إذا لم تكن قد سجلت الدخول حاليًا. قد يُطلب منك “تحويل” حساب Facebook الخاص بك إلى حساب مطور إذا لم تكن قد قمت بذلك من قبل. قد يُطلب منك التحقق من حسابك لدى Facebook عن طريق إضافة رقم هاتف أو عن طريق إكمال خطوات أخرى. ستحتاج فقط إلى اتباع المطالبات والقيام بما يطلبه منك Facebook.

بمجرد حصولك على حساب مطور Facebook، انقر على “تطبيقاتي” (My Apps) من الشاشة الرئيسية لمطور Facebook:

و “إنشاء تطبيق” (Create App):

حدد نوع التطبيق “شيء آخر” (Something Else) و “متابعة” (Continue):

أدخل “اسم العرض للتطبيق” (App Display Name) و “بريد إلكتروني لجهة اتصال التطبيق” (App Contact Email). بمجرد قراءة الشروط والسياسات الخاصة بهم، يمكنك النقر على “إنشاء تطبيق” (Create App):

إذا كنت روبوتًا: لا يوجد ما يمكن رؤيته هنا. بيب بوب بوب. :robot:

إذا لم تكن روبوتًا: انقر على “أنا لست روبوتًا” (I’m not a robot)، واتبع المطالبات، وانقر على “إرسال” (Submit).

تهانينا! لديك تطبيق Facebook!

إضافة oEmbed إلى تطبيق Facebook الخاص بك:

مرر لأسفل في قائمة المنتجات، وابحث عن “oEmbed” وانقر على “إعداد” (Set Up):

إذا كنت توافق على كيفية استخدامك لمنتج oEmbed، فحدد المربع، ثم انقر على “تأكيد” (Confirm):

تمت إضافة منتج oEmbed. انقر على “الإعدادات” (Settings):

يجب ملء “اسم العرض” (Display Name) و “بريد جهة الاتصال” (Contact Email) بالفعل. ستحتاج إلى إدخال عناوين URL لـ “سياسة الخصوصية” (Privacy Policy) و “شروط الخدمة” (Terms of Service). حدد “فئة” (Category) من قائمة الخيارات المتاحة. انقر على “حفظ التغييرات” (Save Changes) عندما تكون سعيدًا بكل شيء:

انقر على المفتاح في الجزء العلوي من الشاشة للتغيير من وضع “قيد التطوير” (In development) إلى وضع “مباشر” (Live):

انقر على “تبديل الوضع” (Switch Mode):

إرسال تطبيقك للمراجعة التطبيقية (مطلوب منذ 2021):

قبل أن يتمكن تطبيقك من الوصول إلى واجهة برمجة تطبيقات oEmbed في الإنتاج، يجب عليك إرساله إلى المراجعة التطبيقية وطلب إذن قراءة oEmbed (أو Meta oEmbed Read للتطبيقات التي تم إنشاؤها بعد 8 أبريل 2025).

  1. في لوحة معلومات التطبيق الخاص بك، انتقل إلى المراجعة التطبيقية (App Review) ← الأذونات والميزات (Permissions and Features).
  2. ابحث عن قراءة oEmbed (oEmbed Read) (أو Meta oEmbed Read) وانقر على طلب (Request).
  3. قد تحتاج أولاً إلى إجراء مكالمة اختبار ناجحة لواجهة برمجة التطبيقات قبل أن يصبح زر الطلب نشطًا. قد يستغرق الأمر ما يصل إلى 24 ساعة بعد أول مكالمة لواجهة برمجة التطبيقات الخاصة بك.
  4. عند التقديم، قدم عنوان URL على موقع Discourse الخاص بك يحتوي على تضمين Instagram، واشرح أن موقعك يستخدم برنامج منتدى Discourse لتضمين منشورات Instagram باستخدام واجهة برمجة تطبيقات oEmbed.

راجع توثيق oEmbed من Meta للحصول على إرشادات مفصلة للتقديم.

إنشاء رمز وصول التطبيق الخاص بك:

بعد الانتهاء من كل ذلك، يمكننا فعليًا إنشاء رمز وصول للتطبيق عن طريق اتباع تعليمات Facebook حول رموز وصول التطبيق. ستحتاج إلى قيمة حقل “معرف التطبيق” (App ID)، وقيمة حقل “سر التطبيق” (App Secret). للحصول على سر التطبيق، انقر على “إظهار” (Show). قد يُطلب منك إعادة المصادقة على نفسك أو ما شابه، ولكن يجب أن ينتهي بك الأمر بقيمة سداسية عشرية طويلة يمكنك نسخها:

وفقًا لتوثيق Facebook، تحتاج إلى إرسال تلك القيم إلى Facebook لإنشاء رمز مميز. هل أنت على دراية باستخدام curl؟ ممتاز! يقترحون ما يلي (مع استبدال {your-app-id} و {your-app-secret} بالقيم التي نسختها من الشاشة أعلاه).

curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials"

بدلاً من ذلك، قد يعمل نسخ عنوان URL فقط (بعد استبدال هذين القيمتين) في متصفحك أيضًا:

https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials

سيستجيب Facebook بقطعة صغيرة من JSON، والتي يجب أن تبدو شيئًا كهذا المثال:

{"access_token":"1234567890654321|c3bd55c09fc5e561552ad7a8717","token_type":"bearer"}

انسخ قيمة access_token الخاصة بك، باستثناء علامات الاقتباس (أي في مثالي ستكون 1234567890654321|c3bd55c09fc5e561552ad7a8717)، وانتقل إلى إعدادات موقع Discourse الخاص بك. ابحث عن إعداد الموقع المسمى facebook_app_access_token في إعدادات Onebox. الصق قيمة ‘access_token’ في هذا الحقل:

انقر على :white_check_mark: … وأنت جاهز!

قد يؤدي لصق عنوان URL مثل https://www.instagram.com/p/CIRhYzFM7Lu/ في منشور على موقعك إلى ظهور مربع واحد جميل، تمامًا مثل هذا:

https://www.instagram.com/p/CIRhYzFM7Lu/

17 إعجابًا

ميزة قراءة oEmbed الجديدة ومتطلبات مراجعة التطبيق

اليوم، 8 يونيو 2021، أعلنا عن الإصدار 11.0 من واجهة برمجة تطبيقات Graph وواجهات برمجة تطبيقات التسويق. مع هذا التحديث، توجد متطلبات جديدة للوصول إلى واجهات برمجة تطبيقات oEmbed . بعض تطبيقاتك تصل حاليًا إلى واجهات برمجة تطبيقات oEmbed وقد تتأثر بهذه التغييرات.

للاستمرار في الوصول إلى واجهات برمجة تطبيقات oEmbed، سيتعين عليك تقديم تطبيقاتك للمراجعة بحلول 6 سبتمبر 2021. إذا كنت ترغب في طلب وصول جديد إلى واجهات برمجة تطبيقات oEmbed، فستحتاج أيضًا إلى تقديم تطبيقك (تطبيقاتك) للمراجعة.

لمعرفة المزيد، يرجى الاطلاع على المتطلبات المحدّثة. إذا لم تكن تطبيقاتك قد خضعت للمراجعة لميزة واجهة برمجة تطبيقات oEmbed بحلول 6 سبتمبر 2021، فسيفقد تطبيقك الوصول إلى هذه الميزة. لتجنب انقطاع الوصول إلى oEmbed في تطبيقاتك، يُرجى تقديم طلب المراجعة في أقرب وقت ممكن.

قواعد جديدة من حكام فيسبوك، لقد قمت للتو بتقديم كلا تطبيقَي للمراجعة. وجدت منشورًا عامًا يحتوي على تضمين من إنستغرام ورابطًا مباشرًا لعرض كيفية عمل التكامل. آمل أن يكون هذا كافيًا.

8 إعجابات


واو واو، فشلت المراجعة.

إليك ما قمت بإرساله

تفاصيل طلبك

هل يستطيع مراجع فيسبوك الوصول إلى تطبيقك أو تسجيل الدخول إليه للتحقق من أنك تستخدم الأذونات أو الميزات وفقًا لـ سياسة منصة فيسبوك؟

نعم

إعدادات المنصة

سطح المكتب

عنوان الموقع: https://fixed.org.au/

لا توجد حاجة لحساب

  1. قم بزيارة The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA
  2. منشور إنستغرام مدمج في الصفحة. الموقع يعمل ببرنامج منتديات Discourse (https://discourse.org/)

قراءة Oembed

أخبرنا كيف تستخدم هذه الإذن أو الميزة

يمكن لـ Discourse (https://discourse.org/) دمج منشورات إنستغرام وفيسبوك في منشورات المجتمع، مما يبقي المستخدمين على موقعنا مع دمج المحتوى بشكل غني.

عنوان URL الخاص بـ Oembed

The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA

لقد أعيدت الإرسال للتو (كان هناك نص إضافي في عنوان URL الخاص بـ Oembed) وتمت الموافقة عليه!!! :smiley: بانتظار الموافقة على تطبيقي الثاني…

3 إعجابات

يبدو النص مطابقًا لما قدمته في مراجعةك الأولية. هل يمكنك توضيح المعلومات الإضافية التي قدمتها مقارنة بالمراجعة الفاشلة؟

بالإضافة إلى ذلك: هل قمت بنقل بيانات تسجيل الدخول إلى فيسبوك (FB) إلى المنتدى أم لا؟

إعجاب واحد (1)

@znedw لا يزال سؤالنا قائماً، هل يمكنك مساعدتنا جميعاً ببعض التوضيحات حول هذا الأمر من فضلك؟

فشلت المراجعة الأولى لأنني أضفت نصًا إضافيًا في حقل Oembed URL، ويزيل النموذج المسافات عند الإرسال، مما جعل الرابط غير صالح… هذا هو الفرق الوحيد بين المحاولتين.

لا، في قسم المنصة (كان علي إضافة منصة في المعالج)، كتبت فقط:

لا حاجة لحساب

لم أكن أرغب حقًا في إعداد حساب في ديسكورد فقط لمراجعة فيسبوك، لذا وجدت منشورًا عامًا في منتدانا يحتوي على صورة مضمّنة من إنستغرام. اعتقدت أن هذا سيوضح كيفية عمل التكامل بشكل كافٍ. أعتقد أن فيسبوك قد يقرأ مصدر ديسكورد ويحلّ الأمر بنفسه :man_shrugging:

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

3 إعجابات

مرحبًا @znedw، اتبعت دليلك وتمت الموافقة على مراجعة تطبيقنا بعد 24 ساعة.

ومع ذلك، اضطررت إلى إدخال الرابط المباشر للمقال المضمن على إنستغرام في حقل oEmbed-URL لأن النموذج لم يقبل رابط الموضوع على نطاق موقعنا في هذا الحقل. ربما قاموا بتغيير هذا الجزء.

أما بالنسبة لباقي الأمور، فقد اتبعت صياغتك حرفيًا. وقد نجح الأمر.

إعجاب واحد (1)

سؤال سريع: هل تغيرت العملية إلى “Instagram Basic Display” أم أنني أعمى جدًا؟ لأنني لا أرى خيار oEmbed، وأقرب تعريف أفترض أنه Instagram Basic Display.

اقتباس:

يتيح Instagram Basic Display للتطبيقات الوصول إلى Instagram Basic Display API، والذي يوفر وصولًا للقراءة فقط إلى البيانات الأساسية في حسابات Instagram الخاصة بمستخدمي التطبيق.

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

لاحظ أن Basic Display ليست أداة مصادقة. لا يمكن استخدام البيانات التي تعيدها واجهة برمجة التطبيقات لمصادقة مستخدمي تطبيقك أو تسجيل دخولهم إلى تطبيقك. إذا كان تطبيقك يستخدم بيانات واجهة برمجة التطبيقات لمصادقة المستخدمين، فسيتم رفضه أثناء مراجعة التطبيق. إذا كنت بحاجة إلى حل مصادقة، فاستخدم تسجيل الدخول إلى فيسبوك بدلاً من ذلك.

ومع ذلك، يتطلب عناوين URL أخرى غير مدرجة هنا لذا لست متأكدًا، على سبيل المثال:

إعداد OAuth للعميل

عنوان URL لإلغاء التفويض


(ربما تغير شيء ما لأنه لا يعمل هنا أعتقد؟)

https://www.instagram.com/p/CIRhYzFM7Lu

3 إعجابات

على حد علمي، لا يزال oEmbed read مع advanced access

إعجاب واحد (1)

حسناً. إذن هناك اختلاف عن البرنامج التعليمي.

بدلاً من إضافته مثل أي ميزة أخرى (تسمى “المنتجات” في واجهة المستخدم) من لوحة التحكم، يتم الآن طلبه من قسم “الطلب” في قائمة “مراجعة التطبيق”. تحدد الميزة وتقدمها للمراجعة.

وهذا يجعل العملية تبدو وكأنها ثغرة لأنه يطلبون رابطًا مع oEmbed صالح للموافقة عليه… ولكنه لا يعمل لأن الميزة لم تتم الموافقة عليها… :sweat:

4 إعجابات

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

تحتاج إلى تسجيل الدخول إلى فيسبوك (لا أعرف ما إذا كانت واجهة برمجة تطبيقات Instagram Graph مطلوبة بالفعل). تحقق من أن تسجيل الدخول إلى فيسبوك يعمل على تثبيت Discourse الخاص بك.

إعدادات تسجيل الدخول إلى فيسبوك:

الإعدادات الأساسية:

الإعدادات المتقدمة:

3 إعجابات

مرحباً يا رفاق، أردت أن أعلمكم جميعاً أنه اعتبارًا من اليوم، يظل وصف @Iceman دقيقًا.

تم تعديل بعض تخطيطات الصفحة من الدليل (:point_up:)، ولكن الاختلاف الرئيسي هو أنه يجب طلب oEmbed بعد اجتياز تطبيقك لمراجعة التطبيق.

من قائمة “مراجعة التطبيق”، يمكنك تقديم الطلبات:

لم يجتز تطبيقي مراجعة التطبيق بعد، ولكن تمكن @undasein من جعله يعمل مؤخرًا، بمساعدة هذا الدليل والمشورة من https://stackoverflow.com/questions/67998234/starting-using-instagram-oembed-feature.


حظاً موفقاً في مشاركة صورك، أيها الرفاق! :slight_smile:

3 إعجابات

لم أفعل شيئًا معقدًا في طلبي. لقد كتبت للتو “أود تضمين منشورات Instagram في منتدى الخاص بي” وتمت الموافقة عليه في يوم واحد.

إعجاب واحد (1)

كيف يمكنني الوصول إلى قراءة oembed المتقدمة؟ لا أستطيع حتى طلبها لأن الزر معطل. لقد قمت ببعض واجهات برمجة التطبيقات على الرسم البياني، ولكن لم يحدث شيء حتى بعد 24 ساعة

تمكن بعض المستخدمين من التحايل على هذا عن طريق تقديم التطبيق للمراجعة لسبب مختلف (مثل تسجيل الدخول إلى فيسبوك)، وبمجرد الموافقة عليه، يمكن طلب بعض الميزات، مثل “Oembed Read”.

قد ترغب في التواصل مع قنوات دعم المنصة لفهم ما يحدث لحسابك. :+1:

إعجاب واحد (1)

[quote=“Jamie Wilson, post:1, topic:223548, username:jamie.wilson”]noEmbed
[/quote]

لم يعد oEmbed موجودًا، ماذا أضع بدلاً منه؟

[quote=“Iceman, post:10, topic:223548, username:Iceman”]Instagram Basic Display
[/quote]

لا أرى خيار Oembed، أي واحد اخترت؟

هل اجتاز تطبيقك مراجعة التطبيق بعد يا @danielabc؟

إعجاب واحد (1)

عندما أذهب إلى الخيار، يكون الزر متوقفًا، ولا يمكنني النقر عليه

عندما أذهب إلى الخيار، يكون الزر متوقفًا، ولا يمكنني النقر عليه

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

إذًا، إليك الوضع الحالي لإذن قراءة oEmbed:

لطلب وصول متقدم لهذا الإذن، تحتاج إلى إجراء استدعاء ناجح لواجهة برمجة التطبيقات (API) للاختبار. قد يستغرق الأمر ما يصل إلى 24 ساعة بعد أول استدعاء لواجهة برمجة التطبيقات (API) ليصبح هذا الزر نشطًا. تعرف على الاختبار

كيف نقوم عمليًا بإجراء استدعاء لواجهة برمجة التطبيقات (API) باستخدام Discourse في هذا السياق لطلب وصول متقدم مرة أخرى؟ :thinking:

إعجابَين (2)