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

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

يتم تناول الأذونات بالتفصيل في دليل الأذونات الذي نوفره. ومع ذلك، توجد بعض الأمور التي يجب تذكّرها عند التعامل مع الأذونات ومربع الحوار تسجيل الدخول:

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

إضافة الأذونات

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

فعلى سبيل المثال، لنفترض أن لديك الزر تسجيل الدخول مع الأذونات التالية:

<fb:login-button scope="public_profile" onlogin="checkLoginState();">
</fb:login-button>

وإذا تحققت من الإذن /me/permissions للحصول على الأذونات التي تم منحها بعد قبول الشخص، فستجد ما يلي:

{"data":
  [
    {
      "permission":"public_profile",
      "status":"granted"
    }
  ]
}

إذا كنت تريد إضافة الإذن email لاحقًا، يمكنك بدء استخدامه مرة أخرى من خلال الوظيفة FB.login() كما يلي:

FB.login(function(response) {
   console.log(response);
}, {scope: 'email'});

(يجب استدعاء هذه الوظيفة من معالج حدث الزر، وإلا فمن المحتمل أن يتم حظرها بواسطة أدوات حظر النوافذ المنبثقة في المتصفح.)

لاحظ أنه يتم طلب الإذن الجديد فقط. وإذا كنت تقبل الإذن الجديد، فستؤدي عملية التحقق من الإذن /me/permissions إلى ما يلي:

{"data":
  [
    {
      "permission":"public_profile",
      "status":"granted"
    },
    {
      "permission":"email",
      "status":"granted"
    }
  ]
}

لاحظ أنه تمت إضافة الإذن email الجديد إلى قائمة الأذونات المسموح بها.

إعادة طلب الأذونات المرفوضة

يتيح تسجيل دخول فيسبوك للأشخاص رفض مشاركة بعض الأذونات مع تطبيقك. وإذا كان شخص ما يرفض منح الإذن user_likes (تسجيلات الإعجاب)، فسيؤدي التحقق من الإذن /me/permissions لمعرفة الأذونات التي تم منحها إلى ما يلي:

{
  "data":
    [
      {
        "permission":"public_profile",
        "status":"granted"
      },
      {
        "permission":"user_likes",
        "status":"declined"
      }
    ]
}

لاحظ أنه تم رفض الإذن user_likes بدلًا من منحه.

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

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

يمكنك إجراء ذلك من خلال إضافة العلامة auth_type: rerequest إلى استدعاء FB.login() الذي تجريه:

FB.login(
  function(response) {
    console.log(response);
  },
  {
    scope: 'user_likes',
    auth_type: 'rerequest'
  }
);

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