يسمح تسجيل الدخول المحدود للمطوّرين بالإشارة إلى أن تسجيل الدخول يكون محدودًا من حيث إمكانية تتبع المستخدمين.
ستؤدي محاولة تسجيل الدخول الناجحة إلى ملء مثيل AuthenticationToken
عام يوفر معلومات حول محاولة تسجيل الدخول والتي يمكن استخدامها في التحقق من المصادقة على خوادم العميل. بالإضافة إلى ذلك، سنقوم بملء مثيل ملف شخصي مشترك يحتوي على معلومات أساسية تتضمن معرفًا على مستوى التطبيق للمستخدم واسم المستخدم وصورة الملف الشخصي.
فيما يلي الأذونات المتوفرة التي يمكنك طلبها:
public_profile
email
gaming_profile
gaming_user_picture
user_age_range
user_birthday
user_friends
user_gender
user_hometown
user_link
user_location
user_messenger_contact
يسمح تسجيل الدخول المحدود للمطوّرين بإدخال رقم اعتباطي لاستخدامه في التحقق من محاولة المصادقة التي يتم إجراؤها على خوادمهم. للحصول على معلومات حول استخدام الرقم الاعتباطي في التحقق من صحة الرموز، راجع التحقق من صحة رمز OIDC لتسجيل الدخول المحدود.
لا يتم دعم مفتاح التطبيق، الذي يتم فيه عرض مربع حوار تسجيل الدخول إلى المستخدم في تطبيق فيسبوك لنظام iOS عندما يكون قد سجل الدخول بالفعل هناك، في تدفقات تسجيل الدخول المحدود.
توفر مجموعة Facebook SDK لنظام iOS قائمة تعداد FBSDKLoginTracking
جديدة. علمًا بأن القيم الممكنة هي enabled
وlimited
. بالنسبة إلى تسجيل الدخول المحدود، يمكنك استخدام limited
.
enum LoginTracking {
case enabled
case limited
}
بالإضافة إلى ذلك، يستخدم تسجيل الدخول المحدود FBSDKLoginConfiguration
في تعديل السلوك الافتراضي لمحاولة تسجيل الدخول. يتم إنشاء هذا التكوين باستخدام خصائص افتراضية أو خصائص صريحة (Swift فقط) أو باستخدام مُهيئ واحد من عدة مهيئات:
init?(
permissions: Set
الخاصية | الوصف |
---|---|
| الأذونات المطلوبة لمحاولة تسجيل الدخول. يتم التعيين افتراضيًا على مجموعة فارغة. |
| الأذونات المطلوبة لمحاولة تسجيل الدخول. يتم التعيين افتراضيًا على مجموعة فارغة. |
| تفضيل تتبع تسجيل الدخول. يتم تعيين افتراضيًا على |
| الرقم الاعتباطي اللازم لإنشاء عملية التكوين. سيتم استخدام أي رقم اعتباطي فريد إذا لم يتوفر رقم في الأسلوب الافتراضي. |
تتعذر محاولة إنشاء عملية تكوين إذا لم تتم تلبية الشروط التالية:
يجب أن يكون الرقم الاعتباطي عبارة عن سلسلة غير فارغة لا تحتوي على مسافات بيضاء.
لا يمكنك طلب أذونات خارج نطاق التتبع. على سبيل المثال، لا يعمل طلب user_likes
إذا كان التتبع بالقيمة .limited
.
لتنفيذ تسجيل الدخول المحدود في التطبيق باستخدام فئة إدارة تسجيل الدخول مباشرةً، يُرجى الترقية إلى أحدث إصدار من مجموعة Facebook SDK لنظام iOS واستخدام الرمز التالي:
let loginManager = LoginManager()
// Ensure the configuration object is valid
guard let configuration = LoginConfiguration(
permissions:["email", "user_friends", "user_birthday", "user_age_range", "user_gender", "user_location", "user_hometown", "user_link"],
tracking: .limited,
nonce: "123"
)
else {
return
}
loginManager.logIn(configuration: configuration) { result in
switch result {
case .cancelled, .failed:
// Handle error
break
case .success:
// getting user ID
let userID = Profile.current?.userID
// getting pre-populated email
let email = Profile.current?.email
// getting pre-populated friends list
let friendIDs = Profile.current?.friendIDs
// getting pre-populated user birthday
let birthday = Profile.current?.birthday
// getting pre-populated age range
let ageRange = Profile.current?.ageRange
// getting user gender
let gender = Profile.current?.gender
// getting user location
let location = Profile.current?.location
// getting user hometown
let hometown = Profile.current?.hometown
// getting user profile URL
let profileURL = Profile.current?.linkURL
// getting id token string
let tokenString = AuthenticationToken.current?.tokenString
}
}
لتنفيذ تسجيل الدخول المحدود في التطبيق باستخدام زر تسجيل الدخول مباشرةً، يُرجى الترقية إلى أحدث إصدار من مجموعة Facebook SDK لنظام iOS واستخدام الرمز التالي:
override func viewDidLoad() {
super.viewDidLoad()
setupLoginButton()
}
func setupLoginButton() {
loginButton.delegate = self
loginButton.permissions = ["email"]
loginButton.loginTracking = .limited
loginButton.nonce = "123" as NSString
}
func loginButton(
_ loginButton: FBLoginButton,
didCompleteWith potentialResult: LoginManagerLoginResult?,
error potentialError: Error?
) {
if let error = potentialError {
// Handle Error
}
guard let result = potentialResult else {
// Handle missing result
}
guard !result.isCancelled else {
// Handle cancellation
}
// Handle successful login
let userID = Profile.current?.userID
let email = Profile.current?.email
let tokenString = AuthenticationToken.current?.tokenString
}