استخدم 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.