رموز الوصول طويلة الأجل

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

عندما تستخدم مجموعة SDK لنظام iOS أو Android أو JavaScript، ستعمل مجموعة SDK على تحديث الرموز المميزة تلقائيًا إذا استخدم الشخص تطبيقك خلال آخر 90 يومًا. وستحصل تطبيقات الهواتف المحمولة الأصلية التي تستخدم مجموعات SDK في فيسبوك رموز وصول المستخدم طويلة الأجل والصالحة لمدة 60 يومًا تقريبًا. يتم تحديث هذه الرموز المميزة مرة واحدة يوميًا عندما يرسل شخص يستخدم تطبيقك طلبًا إلى خوادم فيسبوك. وفي حالة عدم إرسال أي طلبات، ستنتهي صلاحية الرمز المميز بعد مرور حوالي 60 يومًا وسيتعين على الشخص إجراء خطوات دفق تسجيل الدخول مرة أخرى للحصول على رمز مميز جديد.

آخر إصدار من واجهة Graph API: v19.0

الحصول على رمز وصول المستخدم طويل الأجل

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

ستحتاج إلى ما يلي:

  • رمز وصول مستخدم صالح
  • معرف التطبيق
  • المفتاح السري للتطبيق

يمكنك الاستعلام عن نقطة النهاية GET oauth/access_token.

curl -i -X GET "https://graph.facebook.com/{graph-api-version}/oauth/access_token?  
    grant_type=fb_exchange_token&          
    client_id={app-id}&
    client_secret={app-secret}&
    fb_exchange_token={your-access-token}" 

عينة من الاستجابة

{
  "access_token":"{long-lived-user-access-token}",
  "token_type": "bearer",
  "expires_in": 5183944            //The number of seconds until the token expires
}

يكون دفق العمل لإنشاء رمز وصول المستخدم طويل الأجل كما يلي:

بمجرد استرداد الرمز المميز طويل الأجل، يمكنك استخدامه من خادمك أو إعادة إرساله إلى العميل لاستخدامه هناك.

التنبيهات

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

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

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

الحصول على رمز وصول الصفحة طويل الأجل

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

ستحتاج إلى ما يلي:

يمكنك الاستعلام عن نقطة النهاية GET {app-scoped-user-id}?accounts.

curl -i -X GET "https://graph.facebook.com/{graph-api-version}/{app-scoped-user-id}/accounts?
  access_token={long-lived-user-access-token}"

عينة من الاستجابة

{
  "data":[
    {
      "access_token":"{long-lived-page-access-token}",
      "category":"Brand",
      "category_list":[
        {
          "id":"1605186416478696",
          "name":"Brand"
        }
      ],
      "name":"Cute Kitten Page",
      "id":"{page-id}",
      "tasks":[
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    }
  ],
  "paging":{
    "cursors":{
      "before":"MTM1MzI2OTg2NDcyODg3OQZDZD",
      "after":"MTM1MzI2OTg2NDcyODg3OQZDZD"
    }
  }
}

الحصول على الرموز المميزة Long_lived للعملاء

يوفر فيسبوك خيارًا للحصول على رموز الوصول طويلة الأجل للتطبيقات من أجل تجنب تشغيل أنظمة المحتوى غير المهم أو الاحتيالي المؤتمتة على فيسبوك. التطبيقات التي:

  • تتمتع بنظام المصادقة الخاص بها (استخدام اسم مستخدم/كلمة مرور على سبيل المثال)
  • تُخزن رمز وصول فيسبوك على خوادمها للأشخاص الذين يستخدمون عملاء مختلفين (تطبيقات الهواتف المحمولة الأصلية أو المتصفح)
  • تجري استدعاءات واجهة API من كل هؤلاء العملاء المختلفين

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

  1. باستخدام رمز وصول طويل الأجل وصالح، يرسل خادمك طلبًا للحصول على رمز برمجي من فيسبوك.
  2. يرسل فيسبوك رمزًا برمجيًا مرة أخرى إلى خادمك وترسل أنت هذا الرمز البرمجي إلى العميل بطريقة آمنة.
  3. يستخدم العميل هذا الرمز البرمجي لطلب الحصول على رمز مميز طويل الأجل من فيسبوك.
  4. يرسل فيسبوك إلى العميل رمزًا مميزًا طويل الأجل يُستخدم لنشر القصص أو الاستعلام عن البيانات.

الحصول على رمز برمجي

يمكنك الاستعلام عن نقطة النهاية GET oauth/client_code. يجب أن يكون محدد URI لإعادة التوجيه بالقيمة نفسها التي قمت بتعيينها في لوحة معلومات التطبيق ضمن البطاقة تسجيل دخول فيسبوك > عميل الإعدادات > إعدادات OAuth.

curl -i -X GET "https://graph.facebook.com/{graph-api-version}/oauth/client_code?             
    client_id={app-id}&
    client_secret={app-secret}&
    redirect_uri={app-redirect-uri}&
    access_token={long-lived-user-access-token}" 

عينة من الاستجابة

{
  "code":"{code-for-your-client}"
}

استرداد الرمز البرمجي للحصول على رمز وصول طويل الأجل

بمجرد استرداد الرمز البرمجي من خادم فيسبوك، من ثمّ ستحتاج إلى نقله إلى العميل عبر قناة آمنة. وبمجرد إجراء ذلك، يجب إرسال طلب من العميل إلى نقطة النهاية /oauth/access_token:

curl -i -X GET "https://graph.facebook.com/{graph-api-version}/oauth/access_token?   
    code={code-for-your-client}&
    client_id={app-id}&
    redirect_uri={app-redirect-uri}&
    machine_id= {your-client-machine-id}"

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

عينة من الاستجابة

{
  "access_token":"{long-lived-access-token}", 
  "expires_in":5183944,           //The number of seconds until the token expires
  "machine_id":"{your-client-machine-id}"
}

يكون سير العمل لإنشاء رمز طويل الأجل كما يلي: