رموز الوصول لتقنيات Meta

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

نوع رمز الوصولالوصف

رمز وصول التطبيق

يتم استخدام رمز وصول التطبيق لقراءة إعدادات التطبيق وتعديلها ويتم إنشاؤه باستخدام المفتاح السري للتطبيق من Meta ويتم استخدامه بعد ذلك أثناء الاستدعاءات التي تغير الإعدادات على مستوى التطبيق. يمكنك الحصول على رمز وصول التطبيق عبر إجراء استدعاء من خادم إلى خادم.

رمز البرنامج

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

رمز وصول الصفحة

يتم استخدام رمز وصول الصفحة لقراءة البيانات التي تنتمي إلى صفحة فيسبوك وكتابتها وتعديلها. للحصول على رمز وصول الصفحة يجب البدء بالحصول على رمز وصول المستخدم ثم استخدام رمز وصول المستخدم للحصول على رمز وصول الصفحة عبر Graph API.

رمز وصول مستخدم النظام

يتم استخدام رموز وصول مستخدم النظام إذا كان تطبيقك ينفذ إجراءات برمجية وتلقائية في الصفحات أو الكائنات الإعلانية لعملاء النشاط التجاري من دون الحاجة إلى الاعتماد على إدخالات من جانب مستخدم التطبيق أو طلب إعادة المصادقة في المستقبل.

رمز وصول المستخدم

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

رموز وصول المستخدم

بالرغم من أن كل منصة تنشئ رموز وصول عبر واجهات API مختلفة، فإن كل المنصات تتبع الإستراتيجية الأساسية للحصول على رمز مميز للمستخدم:

الرموز المميزة قصيرة المدى والرموز المميزة طويلة المدى

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

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

تحصل تطبيقات الهواتف المحمولة التي تستخدم مجموعة SDK لنظامي iOS وAndroid في فيسبوك على رموز طويلة الأجل افتراضيًا.

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

الرموز المميزة متنقلة

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

يجب نقل الرموز المميزة بين العميل والخادم على نحو آمن عبر HTTPS لضمان أمان حسابات الأشخاص. اطّلع على المزيد حول الآثار المترتبة على نقل الرموز المميزة بين العملاء والخادم لديك.

تتمتع مختلف المنصات بأساليب مختلفة لبدء هذه العملية وتتضمن وظائف لإدارة رموز الوصول نيابةً عن المطوّر والشخص الذي يمنح الأذونات:

Android

تدير مجموعات Facebook SDK لنظام Android رموز وصول المستخدم تلقائيًا من خلال الفئة com.facebook.AccessToken. ويمكنك التعرف على المزيد حول الحصول على رمز وصول المستخدم من خلال تنفيذ تسجيل دخول فيسبوك لنظام Android. كما يمكنك استرداد رمز وصول المستخدم من خلال فحص Session.getCurrentAccessToken.

عينة من الرمز البرمجي

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    accessToken = AccessToken.getCurrentAccessToken();
}

iOS

تدير مجموعات Facebook SDK لنظام iOS رموز وصول المستخدم تلقائيًا من خلال الفئة FBSDKAccessToken. ويمكنك التعرف على المزيد حول الحصول على رمز وصول المستخدم من خلال تنفيذ تسجيل دخول فيسبوك لنظام iOS. كما يمكنك استرداد رمز الوصول من خلال فحص FBSDKAccessToken.currentAccessToken.

عينة من الرمز البرمجي

- (void)viewDidLoad
{
  [super viewDidLoad];
  NSString *accessToken = [FBSDKAccessToken currentAccessToken];
}

لغة Javascript

تحصل مجموعة Facebook SDK for Javascript على رموز وصول المستخدم وتخزّنها تلقائيًا في ملفات تعريف الارتباط الخاصة بالمتصفح. ويمكنك استرداد رمز وصول المستخدم من خلال إجراء استدعاء إلى FB.getAuthResponse حيث سيتضمن خاصية accessToken ضمن الاستجابة.

عينة من الرمز البرمجي

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    var accessToken = response.authResponse.accessToken;
  } 
} );

يرجى زيارة وثائق مجموعات Facebook SDK للويب للحصول على عينة مكتملة من الرمز البرمجي.

الويب (بدون لغة JavaScript)

عند إنشاء تطبيق ويب دون استخدام مجموعة Facebook SDK for Javascript، ستحتاج إلى إنشاء رمز وصول أثناء إجراء الخطوات الموضحة في هذا المستند.

رموز وصول التطبيق

يتم استخدام رموز وصول التطبيق لإرسال طلبات إلى واجهات Facebook API نيابةً عن تطبيق بدلاً من مستخدم. ويمكن استخدام هذا لتعديل معلمات تطبيقك أو إنشاء الحسابات الاختبارية وإدارتها أو قراءة رؤى تطبيقك.

التقييدات

لا تظهر دائمًا بعض بيانات المستخدم من خلال رمز وصول التطبيق والتي عادةً تكون مرئية للتطبيق الذي يرسل طلبًا برمز وصول المستخدم. إذا كنت تقرأ بيانات المستخدم وتستخدمها في تطبيقك، فيجب عليك استخدام رمز وصول المستخدم بدلاً من رمز وصول التطبيق.

وتُعد رموز وصول التطبيق غير آمنة إذا تم تعيين تطبيقك على Native/Desktop في الإعدادات المتقدمة من لوحة معلومات التطبيق، وبالتالي لن تعمل مع استدعاءات واجهة API. ويرجع ذلك إلى أننا نفترض أن تطبيقات أجهزة الكمبيوتر أو التطبيقات الأصلية ستتضمن مفتاحًا سريًا في مكان ما (وبالتالي لا يكون رمز وصول التطبيق الذي تم إنشاؤه باستخدام هذا المفتاح السري آمنًا).

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

لإنشاء رمز وصول التطبيق، تحتاج إلى:

عينة من الرمز البرمجي

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

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

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

كما يوجد أسلوب آخر لإجراء استدعاءات إلى واجهة Graph API لا يتطلب استخدام رمز وصول تطبيق تم إنشاؤه. يمكنك فقط إدخال معرف التطبيق والمفتاح السري للتطبيق لديك كمعلمة access_token عند إجراء استدعاء:

curl -i -X GET "https://graph.facebook.com/{api-endpoint}&access_token={your-app_id}|{your-app_secret}"   

يعتمد اختيار استخدام رمز وصول تم إنشاؤه أو استخدام هذا الأسلوب على مكان إخفاء المفتاح السري للتطبيق لديك.

رموز وصول الصفحة

يتم استخدام رموز وصول الصفحة في استدعاءات واجهة Graph API لإدارة صفحات فيسبوك. ولإنشاء رمز وصول الصفحة، يجب أن يمنح مسؤول الصفحة إذن الصفحة أو الأذونات اللازمة إلى تطبيقك. وبمجرد منح هذا الإذن، يمكنك استرداد رمز وصول الصفحة باستخدام رمز وصول المستخدم مع الأذونات المطلوبة.

عينة من الرمز البرمجي

curl -i -X GET "https://graph.facebook.com/{your-user-id}/accounts?access_token={user-access-token}" 

يؤدي ذلك إلى إرجاع قائمة بالصفحات التي تتمتع بدور فيها ومعلومات حول كل صفحة، مثل فئة الصفحة والأذونات المحددة التي تتمتع بها في كل صفحة، بالإضافة إلى رمز وصول الصفحة.

{
  "data": [
    {
      "access_token": "EAACEdE...",
      "category": "Brand",
      "category_list": [
        {
          "id": "1605186416478696",
          "name": "Brand"
        }
      ],
      "name": "Ash Cat Page",
      "id": "1353269864728879",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    },
    {
      "access_token": "EAACEdE...",
      "category": "Pet Groomer",
      "category_list": [
        {
          "id": "163003840417682",
          "name": "Pet Groomer"
        },
        {
          "id": "2632",
          "name": "Pet"
        }
      ],
      "name": "Unofficial: Tigger the Cat",
      "id": "1755847768034402",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT"
      ]
    }
  ]
}

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

وتعتبر رموز وصول الصفحة فريدة بالنسبة لكل صفحة ومسؤول وتطبيق.

رموز وصول البرنامج

بدءًا من الإصدار 13.0 لمجموعة SDK لنظام تشغيل iOS وAndroid، الذي من المفترض طرحه في أوائل 2022، سيلزم توفير رمز البرنامج لكل الاستدعاءات إلى واجهة Graph API.

تمامًا مثل رموز التطبيق، تعمل رموز البرنامج على إرسال طلبات Graph API نيابةً عن التطبيقات بدلاً من المستخدمين.

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

{app-id}|{client-token}

على سبيل المثال:

access_token=1234|5678

للحصول على رمز وصول البرنامج لأحد التطبيقات، قم بما يلي:

  1. سجّل الدخول إلى حساب المطوّر.
  2. في صفحة التطبيقات، حدّد تطبيق لفتح لوحة المعلومات لذلك التطبيق.
  3. في لوحة المعلومات، انتقل إلى الإعدادات > الإعدادات المتقدمة > الأمان > رمز البرنامج.

طول رمز الوصول

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

معرفة المزيد