المشاركة في Messenger لنظام تشغيل iOS وAndroid

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

لمزيد من المعلومات، يمكنك مراجعة الأقسام التالية:

لتنفيذ المشاركة في Messenger للويب، راجع المشاركة في Messenger للويب.

أنواع المشاركة

توفر Facebook SDK أربعة أنواع من المشاركة يمكن إسنادها ونوع واحد من المشاركة لا يمكن إسناده:

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

نوع المشاركة هل معرّف الصفحة مطلوب؟ التطبيقات

القالب العام

اختياري

  • قالب عام يحتوي على زر
  • قالب عام يحتوي على إجراء افتراضي
  • قالب عام يحتوي على زر وإجراء افتراضي

قالب الوسائط

مطلوب

  • محدد URI لصورة قالب الوسائط
  • AttachmentID لصورة قالب الوسائط
  • عنوان URL لفيديو قالب الوسائط
  • AttachmentID لفيديو قالب الوسائط

موسيقى Open Graph

مطلوب

  • موسيقى Open Graph

مشاركة الرابط

اختياري

  • رابط بدون إسناد
  • رابط بإسناد

صورة

غير مدعومة

  • الصور
  • صورة من مكتبة الصور

ربط التطبيق مع معرّفات الصفحة

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

لربط معرّف التطبيق مع معرّف الصفحة:

  1. انتقل إلى إعدادات الصفحة.
  2. انقر على قسم منصة Messenger.
  3. انتقل إلى قسم ربط تطبيق في إعدادات عامة".
  4. أدخل معرّف التطبيق وانقر على زر ربط.
  5. إذا لم يكن هذا التطبيق موجودًا في جدول التطبيقات المشترِكة بالفعل، فسيظهر في الجدول مقترنًا به دور "إسناد المشاركة". وإذا كان التطبيق موجودًا بالفعل في الجدول، فسيتم إضافة دور "إسناد المشاركة" الجديد إلى ذلك التطبيق.

يتمكن مسؤولو الصفحة أيضًا من إزالة إذن استخدام إسناد المشاركة الممنوح للتطبيق.

لإزالة دور "إسناد المشاركة" من تطبيق محدد:

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

إضافة نطاقات إلى القائمة البيضاء

إذا كنت تستخدم زر عنوان URL في Share SDK وتريد تمكين ملحق Messenger لعنوان URL الذي تستخدمه عند فتحه في Messenger، يجب إضافة نطاق عنوان URL الخاص بالمشاركة إلى العمل بشكل صحيح.

لإضافة نطاق إلى القائمة البيضاء:

  1. انتقل إلى إعدادات الصفحة.
  2. انقر على قسم منصة Messenger.
  3. انتقل إلى قسم ربط تطبيق في إعدادات عامة".
  4. في حقل النطاقات المضافة إلى القائمة البيضاء، أدخل نطاق عنوان URL، وانقر على حفظ.

لمزيد من المعلومات عن الإضافة إلى القائمة البيضاء، راجع مجموعة SDK لملحقات Messenger - عملية إضافة النطاق إلى القائمة البيضاء المطلوبة.

IOS

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

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

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

لمزيد من المعلومات، راجع بدء استخدام Facebook SDK لنظام iOS

ويجب التأكد أيضًا من قيام تطبيقك باستدعاء canShow على مثيل FBSDKMessageDialog لتحديد ما إذا كان الأشخاص قد قاموا بتثبيت إصدار متوافق من Messenger على أجهزتهم أم لا.

مشاركة مثال على القالب العام

FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];
    
FBSDKShareMessengerGenericTemplateElement *element = [[FBSDKShareMessengerGenericTemplateElement alloc] init];
element.title = @"This is a Cat Picture";
element.subtitle = @"Look at this cat, wow! Amazing.";
element.imageURL = [NSURL URLWithString:@"https://static.pexels.com/photos/126407/pexels-photo-126407.jpeg"];
element.button = urlButton;
    
FBSDKShareMessengerGenericTemplateContent *content = [[FBSDKShareMessengerGenericTemplateContent alloc] init];
content.pageID = // Your page ID, required for attribution
content.element = element;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

مشاركة مثال على قالب الوسائط

// Share with mediaURL
FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

NSURL *mediaURL = // Must be a Facebook URL, see media template documentation
FBSDKShareMessengerMediaTemplateContent *content = [[FBSDKShareMessengerMediaTemplateContent alloc] initWithMediaURL:mediaURL];
content.pageID = // Your page ID, required
content.mediaType = FBSDKShareMessengerMediaTemplateMediaTypeImage;
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

------------------------------------------------------------------

// Share with attachmentID
FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

NSString *attachmentID = // attachmentID, see media template documentation for how to upload an attachment
FBSDKShareMessengerMediaTemplateContent *content = [[FBSDKShareMessengerMediaTemplateContent alloc] initWithAttachmentID:attachmentID];
content.pageID = // Your page ID, required
content.mediaType = FBSDKShareMessengerMediaTemplateMediaTypeImage;
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

مشاركة مثال على موسيقى Open Graph

FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

FBSDKShareMessengerOpenGraphMusicTemplateContent *content = [[FBSDKShareMessengerOpenGraphMusicTemplateContent alloc] init];
content.pageID = // Your page ID, required
content.url = // open graph music url, see open graph music documentation
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

نظام التشغيل Android

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

اتبع الإرشادات الواردة في المشاركة على Android، وفيما ملخص لها:

ويجب التأكد أيضًا من قيام تطبيقك باستدعاء MessageDialog.canshow({template}) لتحديد ما إذا كان الأشخاص قد قاموا بتثبيت إصدار متوافق من Messenger على أجهزتهم أم لا.

مشاركة مثال على القالب العام

ShareMessengerURLActionButton actionButton =
    new ShareMessengerURLActionButton.Builder()
           .setTitle("Visit Facebook")
           .setUrl(Uri.parse("https://www.facebook.com"))
           .build();
ShareMessengerGenericTemplateElement genericTemplateElement =
    new ShareMessengerGenericTemplateElement.Builder()
           .setTitle("Visit Facebook")
           .setSubtitle("Visit Messenger")
           .setImageUrl(Uri.parse("heeps://Your/Image/Url"))
           .setButton(actionButton)
           .build();
ShareMessengerGenericTemplateContent genericTemplateContent = 
    new ShareMessengerGenericTemplateContent.Builder()
           .setPageId("Your Page Id") // Your page ID, required
           .setGenericTemplateElement(genericTemplateElement)
           .build();  
                 
if (MessageDialog.canShow(genericTemplateContent)) {
    MessageDialog.show(activityOrFragment, genericTemplateContent);
}

مشاركة قالب الوسائط

// Share with mediaURL
ShareMessengerMediaTemplateContent mediaTemplateContent =
    new ShareMessengerMediaTemplateContent.Builder()
            .setPageId("Your page ID") // Your page ID, required
            .setMediaType(MediaType.IMAGE)
            .setMediaUrl(Uri.parse("https://Facebook/Media/URL")) // Must be a Facebook URL, see media template documentation
            .setButton(actionButton)
            .build();
if (MessageDialog.canShow(mediaTemplateContent)) {
    MessageDialog.show(activityOrFragment, mediaTemplateContent);
}

// Share with attachmentID
ShareMessengerMediaTemplateContent mediaTemplateContent =
    new ShareMessengerMediaTemplateContent.Builder()
            .setPageId("Your page ID") // Your page ID, required
            .setMediaType(MediaType.IMAGE)
            .setAttachmentId("Attachment Id") // AttachmentID, see media template documentation for how to upload an attachment
            .setButton(actionButton)
            .build();
if (MessageDialog.canShow(mediaTemplateContent)) {
    MessageDialog.show(activityOrFragment, mediaTemplateContent);
}

مشاركة مثال على موسيقى Open Graph

ShareMessengerOpenGraphMusicTemplateContent musicTemplateContent =
    new ShareMessengerOpenGraphMusicTemplateContent.Builder()
                .setPageId("Your page ID") // Your page ID, required
                .setUrl(Uri.parse("https://Open/Graph/Music/URL")) // Open graph music url, see open graph music documentation
                .setButton(actionButton)
                .build();

if (MessageDialog.canShow(musicTemplateContent)) {
    MessageDialog.show(activityOrFragment, musicTemplateContent);
}