المشاركة على iOS

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

كما يستطيع الأشخاص مشاركة المحتوى من تطبيقك إلى Facebook Messenger باستخدام Messenger Expression Platform أو من Sharing's Message Dialog في iOS SDK.

Messenger SDK لنظام iOSمربع حوار الرسالة

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

قبل إضافة ميزة المشاركة إلى تطبيقك، يجب القيام بما يلي:

  • إضافة Facebook SDK لنظام iOS إلى بيئة تطوير الجوال الخاصة بك
  • تكوين معرف تطبيق فيسبوك وربطه
  • إضافة معرف تطبيقك واسم العرض وسبب يمكن قراءته بشريًا للوصول إلى الصورة في ملف .plist بتطبيقك.
  • ربط FBSDKShareKit.framework بمشروعك.

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

بدء استخدام iOS SDK

إعداد نماذج المحتوى

تتضمن جميع الإصدارات الأعلى من الإصدار 4.0 من مجموعات Facebook SDK نماذج جديدة لمشاركة المحتوى. كل نوع من المحتوى يتضمن واجهة يمكنك استخدامها للعرض بما يتناسب مع <FBSDKSharingContent>. وبعد إعداد نماذج المحتوى، أضف واجهة مشاركة إلى التطبيق بما يتناسب مع <FBSDKSharing> مثل FBSDKShareDialog.

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

بدءً من 18 أبريل 2017، لن يستمر دعم المعلمات التالية في Graph API الإصدار 2.9 وما بعده. بالنسبة إلى الإصدار 2.8 وما قبله، ستستمر المعلمات في العمل حتى يوم 17 يوليو 2017.

  • contentTitle - يمثل عنوان المحتوى في الرابط
  • imageURL - عنوان URL للصورة المصغرة التي تظهر في المنشور
  • contentDescription - للمحتوى، عادة 2-4 جمل

فيما يلي مثال على طريقة تشغيل ميزة المشاركة:

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"https://developers.facebook.com"];

ملاحظة: إذا كانت هناك روابط تتم مشاركتها إلى متجر iTunes أو متجر Google Play عبر تطبيقك، فلا يتم نشر أي صور أو أوصاف تحددها في المشاركة باستخدام المعلمات الواردة أدناه. وبدلاً من نشر بعض المعلومات عن التطبيق، نحصل عليها من متجر التطبيقات مباشرة باستخدام أحد برامج Webcrawler. ويمكن عدم تضمين الصور. لمعاينة مشاركة الروابط إلى iTunes أو Google Play، أدخل عنوان URL إلى مصحح أخطاء عناوين URL.

الصور

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

  • يجب أن يقل حجم الصور عن 12 ميجابايت
  • يجب على المستخدمين تثبيت تطبيق فيسبوك لنظام iOS الأصلي، الإصدار 7.0 أو أعلى

صمم محتوى المشاركة للصور باستخدام نموذج FBSDKSharePhotoContent. للحصول على قائمة بجميع السمات، اطلع على مرجع FBSDKSharePhotoContent.

- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
  UIImage *image = info[UIImagePickerControllerOriginalImage];

  FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
  photo.image = image;
  photo.userGenerated = YES;
  FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
  content.photos = @[photo];
  ...
}

مقاطع الفيديو

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

  • يجب أن يقل حجم مقاطع الفيديو عن 12 ميجابايت.
  • يجب على الأشخاص تثبيت عميل فيسبوك لنظام iOS، الإصدار 26.0 أو إصدار أعلى.

صمم محتوى المشاركة لمقاطع الفيديو باستخدام نموذج FBSDKShareVideoContent. للحصول على قائمة بجميع السمات، اطلع على مرجع FBSDKShareVideoContent.

- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
  NSURL *videoURL = [info objectForKey:UIImagePickerControllerReferenceURL];

  FBSDKShareVideo *video = [[FBSDKShareVideo alloc] init];
  video.videoURL = videoURL;
  FBSDKShareVideoContent *content = [[FBSDKShareVideoContent alloc] init];
  content.video = video;
  ...
}

يجب أن يكون عنوان URL للفيديو videoURL أحد عناوين URL للأصل. يمكنك الحصول على عنوان URL للأصل للفيديو من UIImagePickerController.

الوسائط المتعددة

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

  • يحتاج الأشخاص إلى استخدام الإصدار 7.0 أو أحدث لنظام iOS.
  • يجب على الأشخاص تثبيت عميل فيسبوك لنظام iOS، الإصدار 52.0 أو إصدار أعلى.
  • يجب أن يقل حجم الصور ومقاطع الفيديو عن 12 ميجابايت.
  • يتمكن الأشخاص من مشاركة مقطع فيديو واحد بالإضافة إلى 29 صورة أو 30 صورة كحد أقصى.

يمكنك بناء محتوى مشاركة الوسائط المتعددة باستخدام نموذج FBSDKShareMediaContent. للحصول على قائمة بجميع السمات، اطلع على مرجع FBSDKShareMediaContent.

FBSDKSharePhoto *photo = [FBSDKSharePhoto photoWith...
FBSDKShareVideo *video = [FBSDKShareVideo videoWith...
FBSDKShareMediaContent *content = [FBSDKShareMediaContent new];
content.media = @[photo, video];
}

طرق المشاركة

بعد معالجة المحتوى من خلال تصميم نموذج، يمكنك تشغيل مربع الحوار مشاركة أو مربع الحوار رسالة أو يمكنك تخصيص واجهتك الخاصة للمشاركة.

الأزرار

في iOS، يضم فيسبوك الأزرار الأصلية لتشغيل عمليات المشاركة.


الزر أعجبني

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

FBSDKLikeControl *button = [[FBSDKLikeControl alloc] init];
button.objectID = @"https://www.facebook.com/FacebookDevelopers";
[self.view addSubview:button];

الزر مشاركة

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

FBSDKShareButton *button = [[FBSDKShareButton alloc] init];
button.shareContent = content;  
[self.view addSubview:button];

الزر إرسال

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

FBSDKSendButton *button = [[FBSDKSendButton alloc] init];
button.shareContent = content; 
[self.view addSubview:button];

إذا لم يكن تطبيق Messenger مثبتًا، يختفي الزر إرسال. لذا، احرص على التأكد من أن مخطط تطبيقك مناسب عند اختفاء هذا الزر. للتحقق مما إذا كان يتم عرض الزر "إرسال" على الجهاز الحالي، استخدم الخاصية FBSDKSendButtonisHidden:

if (button.isHidden) {
  NSLog(@"Is hidden");
} else {
  [self.view addSubview:button];
}

مربع الحوار مشاركة

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

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"http://developers.facebook.com"];
[FBSDKShareDialog showFromViewController:self
                              withContent:content
                                 delegate:nil];

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

أما الآن فيتم من خلال SDK التحقق تلقائيًا من وجود تطبيق فيسبوك أصلي. إذا لم يتم تثبيته، تقوم SDK بتحويل المستخدمين إلى المتصفح الافتراضي وتفتح مربع الحوار آخر الأخبار. في حالة رغبة أحد الأشخاص في مشاركة حدث Open Graph، تقوم SDK بفتح مربع الحوار مشاركة على الويب.

في حالة تثبيت تطبيق فيسبوك الأصلي، يتم تبديل الإصدارات من V4.0 إلى V4.4 من SDK إلى تطبيق فيسبوك الأصلي لنظام iOS، ثم تعيد التحكم إلى التطبيق بعد نشر واحد من المنشورات. إذا كنت تستخدم الإصدار V4.5+ من SDK، فسيظهر للأشخاص صحيفة مشاركة iOS بدلاً من التبديل إلى تطبيق فيسبوك الأصلي لنظام iOS، ما لم تكن عملية المشاركة أحد أحداث Open Graph.

مربع حوار الرسالة

يقوم مربع الحوار رسالة بالتبديل إلى تطبيق Messenger لنظام iOS الأصلي، ثم يعيد التحكم إلى تطبيقك بعد نشر واحد من المنشورات.

[FBSDKMessageDialog showWithContent:content delegate:nil];

ملاحظة: في الوقت الحالي، لا تدعم أجهزة iPad مربع الحوار رسالة.

دمج iOS

يتضمن iOS 6+ صحيفة مشاركة أصلية تتيح للمستخدمين نشر تحديثات الحالة والصور ومقاطع الفيديو والروابط إلى فيسبوك. كما يتضمن دعمًا لإعداد الجمهور للمنشور والإشارة إلى موقع في المنشور. لا يمكنك مشاركة أحداث Open Graph باستخدام صحيفة المشاركة. تدعم Facebook SDK استخدام وحدة التحكم الأصلية هذه؛ بداية من الإصدار V4.5 من Facebook SDK، وهذه التجربة هي ما سوف يشاهده الأشخاص في أغلب الحالات عند استدعاء مربع الحوار مشاركة على فيسبوك.

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

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

// Example content. Replace with content from your app.
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"https://developers.facebook.com"];

FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init];
dialog.fromViewController = self;
dialog.content = content;
dialog.mode = FBSDKShareDialogModeShareSheet;
[dialog show];

لاحظ أن .fromViewController مطلوب لإظهار صحيفة المشاركة.

الميزات الإضافية

عند استخدام مربع حوار المشاركة من فيسبوك، ستتوفر لديك خيارات إضافية لا تتوفر عند المشاركة باستخدام API.

علامات الهاشتاج

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

ما يلي عبارة عن مثال على إضافة علامة هاشتاج إلى مشاركة رابط.

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"https://developers.facebook.com"];
content.hashtag = [FBSDKHashtag hashtagWithString:@"#MadeWithHackbook"];

مشاركة الاقتباسات

يمكنك تمكين الأشخاص من تمييز النص ليظهر كاقتباس مع رابط تتم مشاركته. بدلاً من ذلك، يمكنك تحديد اقتباس بشكل مسبق، على سبيل المثال، اقتباس بارز بأحد المقالات، للظهور مع رابط تتم مشاركته. في أي من الحالات، يظهر الاقتباس في حقل خاص به منفصلاً عن تعليقات المستخدمين.

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [@"https://developers.facebook.com/products/sharing"];
content.quote = @"Learn quick and simple ways for people to share content from your app or website to Facebook.";

موضوعات متقدمة

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

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

واجهة مخصصة

لاستخدام واجهتك الخاصة للمشاركة، يجب القيام بما يلي:

فيما يلي استدعاء Graph API لنشر رابط إلى فيسبوك:

[FBSDKShareAPI shareWithContent:content delegate:nil];

مشاركة أحداث Open Graph

باستخدام أحداث Open Graph، يستطيع المستخدمون مشاركة المحتوى الثرى والمنظم من خلال واجهة API محددة النوع بدقة ومحددة بواسطة إجراءات وكائنات Open Graph.

يعمل رابط الأحداث المشترك على العودة إلى التطبيق أو إلى صفحة متجر التطبيقات في التطبيق.

لمعرفة المزيد حول كيفية إضافة الأحداث المخصصة إلى تطبيقك، راجع أحداث Open Graph في iOS.

صمم محتوى المشاركة لأحداث Open Graph باستخدام نموذج FBSDKShareOpenGraphContent. للحصول على قائمة بجميع السمات، اطلع على مرجع FBSDKShareOpenGraphContent.

NSDictionary *properties = @{
  @"og:type": @"fitness.course",
  @"og:title": @"Sample Course",
  @"og:description": @"This is a sample course.",
  @"fitness:duration:value": @100,
  @"fitness:duration:units": @"s",
  @"fitness:distance:value": @12,
  @"fitness:distance:units": @"km",
  @"fitness:speed:value": @5,
  @"fitness:speed:units": @"m/s",
};
FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties];
FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init];
action.actionType = @"fitness.runs";
[action setObject:object forKey:@"fitness:course"];
FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init];
content.action = action;
content.previewPropertyName = @"fitness:course";

محاكي iOS والاختبار

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

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