استخدام Graph API في نظام iOS

استخدم Graph API لاستيراد البيانات وتصديرها في مخطط التواصل الاجتماعي في فيسبوك.

يتضمن ذلك ما يلي:

  • الحصول على معلومات الملف الشخصي لتوفير سياق اجتماعي.
  • الحصول على معلومات المستخدم مثل تسجيلات الإعجاب أو الصور الخاصة به.
  • نشر المنشورات (بما في ذلك مقاطع الفيديو أو الصور) على فيسبوك.
  • نشر أحداث open graph على فيسبوك.
  • للاطّلاع على المزيد من الميزات، راجع وثائق Graph API.

يوضح هذا الدليل كيفية التعامل مع Graph API باستخدام مجموعة Facebook SDK لنظام iOS.

المتطلبات الأساسية

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

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

يجب أيضًا إعداد بيئة التطوير لديك لاستخدام مجموعة iOS SDK وإعداد تطبيقك، راجع نظام iOS، دليل بدء الاستخدام.

الحصول على بيانات المستخدم

تتضمن مجموعة SDK فئتين يمكن استخدامهما مع Graph API وهما: FBSDKGraphRequest و FBSDKGraphRequestConnection وتتشابه كل منهما مع NSURLRequest و NSURLRequestConnectionفي إطار عمل Foundation.

لاستخدام FBSDKGraphRequest يجب توفير نقطة نهاية محددة لواجهة Graph API في الطلب. وبعد ذلك، أرسل استدعاء FBSDKGraphRequestConnection لبدء الطلب ومعالجة إكماله.

لتبسيط العملية، تتضمن مجموعة SDK أسلوب startWithCompletionHandler: في FBSDKGraphRequest لإنشاء FBSDKGraphRequestConnection بشكل ضمني نيابة عنك.

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

guard AccessToken.current != nil else { return }

let request = GraphRequest(graphPath: "me", parameters: [:])
request.start() { connection, result, error in
    if let result = result, error == nil {
        print("fetched user: \(result)")
    }
}

الطلبات المُجمعة

يمكنك في Graph API تقديم طلبات مُجمعة ضمن طلب HTTP واحد، راجع Graph API، تقديم الطلبات المُجمعة.

عند استخدام مجموعة SDK، يمكنك إنشاء طلبات متعددة وإضافتها إلى مثيل FBSDKGraphRequestConnection نفسه. يجب تجميع الطلبات كلما أمكن لتقليل نسبة استخدام الشبكة.

على سبيل المثال، نطلب هنا الحصول على تسجيلات الإعجاب لدى شخص ما:

guard let token = AccessToken.current else { return }

if token.hasGranted("user_likes") {
    let meRequest = GraphRequest(graphPath: "me", parameters: [:])
    let likesRequest = GraphRequest(graphPath: "me/likes", parameters: [:])

    let connection = GraphRequestConnection()
    connection.add(meRequest) { connection, result, error in
        // Process the 'me' information
    }
    connection.add(likesRequest) { connection, result, error in
        // Process the 'likes' information
    }

    connection.start()
}

يمكنك أيضًا تحديد معلمات التجميع التي لديها التحميلات الزائدة addRequest:completionHandler: والتي تتضمن إمكانية إنشاء طلبات مُجمعة من خلال طلبات تابعة.

مشاركة الصور ومقاطع الفيديو

بينما يمكنك دائمًا إنشاء FBSDKGraphRequests يدويًا لاستخدام نقاط النهاية في Graph API، تعمل مجموعة Facebook SDK لنظام iOS على تبسيط عملية مشاركة الصور ومقاطع الفيديو من خلال FBSDKShareKit.framework. على سبيل المثال، لمشاركة صورة:

let image: UIImage!
let content = SharePhotoContent()
content.photos = SharePhoto(image: image, isUserGenerated: true)

// Assuming self implements SharingDelegate
let dialog = ShareDialog(
    viewController: self,
    content: content,
    delegate: self
)
dialog.show()

يمكنك أيضًا مشاركة مقاطع الفيديو باستخدام النوع FBSDKShareVideoContent . راجع المشاركة في نظام iOS.

حذف الكائنات

يمكنك أيضًا حذف الكائنات التي أنشأها تطبيقك من خلال إرسال طلب DELETE يتضمن معرف الكائن باعتباره مسار الرسم البياني.

على سبيل المثال، لنفترض أنك نشرت صورة على صفحة وتلقيت المعرف "1234". سيؤدي استخدام الرمز التالي إلى حذف الصورة:

guard let token = AccessToken.current else { return }

if token.hasGranted("pages_manage_posts") {
    let request = GraphRequest(graphPath: "1234", parameters: [:], httpMethod: .delete)
    request.start { connection, result, error in
        if error == nil {
            print("Deleted photo")
        }
    }
}

نصائح حول تصحيح الأخطاء

يمكنك تجربة طلباتك واختبارها باستخدام مستكشف Graph API.

يمكنك أيضًا تمكين وضع تصحيح الأخطاء في Graph API، راجع استكشاف الأخطاء وإصلاحها في مجموعة iOS SDK، وضع تصحيح الأخطاء في Graph API.