يتمثل أحد أهم الأجزاء المرتبطة ببدء استخدام مربع الحوار تسجيل الدخول في اختيار البيانات التي يريد تطبيقك الوصول إليها. وقد استخدمت جميع هذه الأمثلة المعلمة scope
وهي الطريقة التي تطلب من خلالها الوصول إلى بيانات شخص ما. وتحمل جميعها اسم الأذونات.
يتم تناول الأذونات بالتفصيل في دليل الأذونات الذي نوفره. ومع ذلك، توجد بعض الأمور التي يجب تذكّرها عند التعامل مع الأذونات ومربع الحوار تسجيل الدخول:
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' } );
عند تنفيذ ذلك، سيعيد مربع الحوار تسجيل الدخول طلب الإذن المرفوض. وسيشبه مربع الحوار إلى حدٍ كبير مربع الحوار الموجود في القسم الخاص بإعادة طلب الأذونات، ولكنه سيتيح لك إعادة طلب الحصول على إذن مرفوض.