تسجيل دخول فيسبوك لنظام التشغيل iOS - البدء السريع

لقد أجرينا تغييرًا على نقاط النهاية لتسجيل الدخول المحدود؛ يمكن الوصول إليه الآن عبر limited.facebook.com

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

الخطوات التالية لإضافة تسجيل دخول فيسبوك إلى مشروع نظام التشغيل iOS الخاص بك.

‏1.‏ تسجيل الدخول

يرجى تسجيل الدخول إلى فيسبوك لإنشاء تطبيقات أو التسجيل كمطور.

2. إعداد بيئة التطوير

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

استخدام مدير حزمة Swift (SPM)
  1. في Xcode، انقر على الملف > حزم Swift > إضافة تبعية الحزمة.
  2. في مربع الحوار الذي يظهر، أدخل عنوان URL للمستودع: https://github.com/facebook/facebook-ios-sdk.
  3. في الإصدار، أدخل رقم الإصدار لأحدث إصدار من مجموعة Facebook SDK لنظام التشغيل iOS.
  4. أكمل المطالبات لتحديد المكتبات التي ترغب في استخدامها في مشروعك.

3. التسجيل وتكوين تطبيقك للعمل مع فيسبوك

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

يجب ‏تسجيل الدخول‏ لإكمال هذه الخطوة.

4. تكوين مشروعك

يمكنك تكوين الملف Info.plist بجزء رمز برمجي في ملف بلغة XML يحتوي على بيانات حول تطبيقك.

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

  1. انقر بزر الماوس الأيمن على الملف Info.plist، واختر فتح ▸ كرمز برمجي مصدر.
  2. انسخ جزء الرمز البرمجي الموجود في ملف XML والصقه داخل النص الأساسي للملف (<dict>...</dict>).
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fbAPP-ID</string>
      </array>
      </dict>
    </array>
    <key>FacebookAppID</key>
    <string>APP-ID</string>
    <key>FacebookClientToken</key>
    <string>CLIENT-TOKEN</string>
    <key>FacebookDisplayName</key>
    <string>APP-NAME</string>
  3. في <array><string> الموجود ضمن [CFBundleURLSchemes] الأساسي، استبدل APP-ID بمعرف التطبيق لديك.
  4. في <string> الموجود ضمن FacebookAppID الأساسي، استبدلAPP-ID بمعرف التطبيق لديك.
  5. في <string> الموجود ضمن FacebookClientToken الأساسي، استبدل CLIENT-TOKEN بالقيمة الموجودة ضمن الإعدادات > متقدم > رمز العميل في لوحة معلومات تطبيقك.
  6. في <string> الموجود ضمن FacebookDisplayName الأساسي، استبدل APP-NAME باسم تطبيقك.
  7. لاستخدام أحد مربعات حوار فيسبوك (مثل، تسجيل الدخول أو المشاركة أو دعوات التطبيق أو غير ذلك) التي يمكن من خلالها إجراء تبديل التطبيق إلى تطبيقات فيسبوك، يجب أن يحتوي الملف Info.plist في تطبيقك أيضًا على:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

يمكنك بشكل مباشر تعيين التجميع التلقائي لأحداث التطبيق على "true" أو "false" عن طريق إضافة FacebookAutoLogAppEventsEnabled كمفتاح في Info.plist.

سيحتاج المشروع إلى تضمين إمكانية "مشاركة سلسلة المفاتيح" لتسجيل الدخول للعمل في تطبيقات Mac Catalyst.
  1. حدّد الزر + إمكانية في علامة تبويب التسجيل والإمكانيات عند تكوين هدف التطبيق.
  2. ابحث عن إمكانية مشاركة سلسلة المفاتيح وحددها.
  3. تأكد من إدراج إمكانية مشاركة سلسلة المفاتيح للهدف.

5. ربط تفويض التطبيق

استبدل الرمز في الأسلوب AppDelegate.swift بالرمز التالي. يعمل هذا الرمز على تهيئة مجموعة SDK عند تشغيل التطبيق ويسمح لمجموعة SDK بمعالجة تسجيلات الدخول والمشاركة من تطبيق فيسبوك الأصلي عند تنفيذ إجراء تسجيل الدخول أو المشاركة. من ناحية أخرى، يجب على المستخدم تسجيل الدخول إلى فيسبوك لاستخدام المتصفح داخل التطبيق لتسجيل الدخول.
    
// AppDelegate.swift
import UIKit
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {    
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {          
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        return true
    }
          
    func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
        ApplicationDelegate.shared.application(
            app,
            open: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
    }  
}

نقل نظام iOS 13 وظائف عنوان URL الافتتاحي إلى SceneDelegate. إذا كنت تستخدم iOS 13، فأضف الأسلوب التالي إلى SceneDelegate حتى يتم تشغيل العمليات مثل تسجيل الدخول أو المشاركة كما هو مطلوب:
// SceneDelegate.swift
import FacebookCore
  ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

6. إضافة تسجيل دخول فيسبوك إلى الرمز الخاص بك

يمكنك استخدام الزر تسجيل دخول فيسبوك داخل تطبيقك الذي يستخدم نظام التشغيل iOS.

6أ. إضافة تسجيل دخول فيسبوك إلى الرمز البرمجي

لإضافة زر تسجيل دخول خاص بعلامة فيسبوك التجارية إلى تطبيقك، أضف جزءًا من الرمز البرمجي التالي إلى إحدى وحدات التحكم في العرض.
// Add this to the header of your file, e.g. in ViewController.swift 
import FacebookLogin

// Add this to the body
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
	
        let loginButton = FBLoginButton()
        loginButton.center = view.center
        view.addSubview(loginButton)
    }
}
يجب أن تكون قادرًا في الوقت الحالي على تشغيل تطبيقك وتسجيل الدخول باستخدام زر تسجيل دخول فيسبوك.

6ب. التحقق من حالة تسجيل الدخول الحالية

لا يمكن لتطبيقك سوى إجراء تسجيل دخول لشخص واحد فقط في كل مرة. ونمثل كل شخص سجّل دخوله إلى تطبيقك باستخدام AccessToken.current.
يعمل LoginManager على تعيين هذا الرمز من أجلك وعند تعيين AccessToken.current، تتم أيضًا كتابته تلقائيًا في ذاكرة التخزين لسلسلة المفاتيح.
يحتوي AccessToken على userID الذي يمكنك استخدامه لتحديد هوية المستخدم.
يجب تحديث وحدة التحكم في العرض للتحقق من وجود رمز حالي عند التحميل. وسيؤدي ذلك إلى تجنب العرض غير الضروري لدفق تسجيل الدخول مرة أخرى إذا منح شخص ما أذونات بالفعل للوصول إلى تطبيقك:
override func viewDidLoad() {
    super.viewDidLoad()

    if let token = AccessToken.current,
        !token.isExpired {
        // User is logged in, do work such as go to next view controller.
    }
}
    

6ج. طلب الأذونات

عند استخدام تسجيل دخول فيسبوك، يمكن لتطبيقك أن يطلب أذونات لمجموعة فرعية من بيانات شخص ما. يتطلب تسجيل دخول فيسبوك إذن public_profile متقدم ليتم استخدامه بواسطة المستخدمين الخارجيين.
أذونات القراءة لزر تسجيل دخول فيسبوك
لطلب أذونات القراءة الإضافية، قم بتعيين أصل الأذونات في الكائن FBLoginButton .
// Extend the code sample from 6a. Add Facebook Login to Your Code
// Add to your viewDidLoad method:
loginButton.permissions = ["public_profile", "email"]
  
سيُطلب من المستخدم منح تطبيقك الأذونات المطلوبة. لاحظ أن بعض الأذونات ستتطلب مراجعة تسجيل الدخول. لمزيد من المعلومات عن الأذونات، راجع إدارة الأذونات.

7. الخطوات التالية

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