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

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

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

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

يعرض المثال المصوّر التالي مربع حوار المشاركة في تطبيقك على اليسار والمنشور الناتج في تطبيق فيسبوك على اليمين.

بدء استخدام المشاركة

تعتبر مجموعة SDK للمشاركة لنظام Android إحدى مكونات مجموعة Facebook SDK لنظام Android.

لاستخدام مجموعة SDK للمشاركة على فيسبوك في مشروعك، أضفها كعنصر تابع في منصة Maven.

  1. في مشروعك، افتح your_app | Gradle Scripts | build.gradle (Project) وأضف المستودع التالي إلى القسم buildscript { repositories {}}:

    mavenCentral() 
    
  2. في مشروعك، افتح your_app | Gradle Scripts | build.gradle (Module: app) وأضف عبارة التحويل البرمجي التالية إلى القسم dependencies{}:

    compile 'com.facebook.android:facebook-share:latest.release'
    
  3. أنشئ مشروعك.

  4. احصل على معرف تطبيق فيسبوك الذي تم تكوينه بشكل صحيح وربطه بتطبيق Android لديك.

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

  6. أضف ContentProvider إلى ملف AndroidManifest.xml لديك وقم بتعيين {APP_ID} إلى معرف تطبيقك:

    <provider android:authorities="com.facebook.app.FacebookContentProvider{APP_ID}"
    android:name="com.facebook.FacebookContentProvider"
    android:exported="true"/>
    
  7. إذا كان تطبيقك يستهدف نظام التشغيل Android 11 أو الإصدارات الأحدث، فأضف مجموعة الاستعلامات التالية إلى ملف AndroidManifest.xml لديك من أجل جعل تطبيق فيسبوك مرئيًا لتطبيقك:

    <queries><provider android:authorities="com.facebook.katana.provider.PlatformProvider" /></queries>
  8. أضف Facebook Activity إلى مشروعك وقم بتضمينه في ملف AndroidManifest.xml لديك.

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

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

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

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

ShareLinkContent content = new ShareLinkContent.Builder()
        .setContentUrl(Uri.parse("https://developers.facebook.com"))
        .build();

لمعاينة مشاركة رابط إلى Google Play أو App Store، أدخل عنوان URL في أداة تصحيح أخطاء المشاركة.

وإذا كانت مشاركة تطبيقك تحتوي على رابط لأي تطبيق على Google Play أو App Store، فسيتم تجاهل الوصف والصورة التي تم تضمينهما في المشاركة. وبدلاً من ذلك، سنقوم باستخلاص المتجر المرتبط مباشرة بعنوان وصورة هذا التطبيق (وفي حالة عدم وجود صورة، فإن المشاركة لن تتضمن أي صور).

الصور

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

أنشئ محتوى المشاركة للصور في النموذج SharePhotoContent. وللحصول على قائمة بكل السمات، يمكنك الرجوع إلى مرجع SharePhotoContent.

Bitmap image = ...
SharePhoto photo = new SharePhoto.Builder()
        .setBitmap(image)
        .build();
SharePhotoContent content = new SharePhotoContent.Builder()
        .addPhoto(photo)
        .build();

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

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

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

Uri videoFileUri = ...
ShareVideo = new ShareVideo.Builder()
        .setLocalUrl(videoUrl)
        .build();
ShareVideoContent content = new ShareVideoContent.Builder()
        .setVideo(video)
        .build();

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

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

  • يجب أن يقوم الأشخاص بتثبيت الإصدار 71 أو الإصدار الأحدث من تطبيق فيسبوك لنظام Android الأصلي.
  • يمكن للأشخاص مشاركة 6 صور ومقاطع فيديو كحد أقصى في الوقت نفسه.

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

SharePhoto sharePhoto1 = new SharePhoto.Builder()
    .setBitmap(...)
    .build();
SharePhoto sharePhoto2 = new SharePhoto.Builder()
    .setBitmap(...)
    .build();
ShareVideo shareVideo1 = new ShareVideo.Builder()
    .setLocalUrl(...)
    .build();
ShareVideo shareVideo2 = new ShareVideo.Builder()
    .setLocalUrl(...)
    .build();

ShareContent shareContent = new ShareMediaContent.Builder()
    .addMedium(sharePhoto1)
    .addMedium(sharePhoto2)
    .addMedium(shareVideo1)
    .addMedium(shareVideo2)
    .build();

ShareDialog shareDialog = new ShareDialog(...);
shareDialog.show(shareContent, Mode.AUTOMATIC);

إضافة واجهات المشاركة

بعد معالجة المحتوى عن طريق إنشاء طراز، شغّل واجهة مشاركة على فيسبوك.

الأزرار

يوفر فيسبوك أزرارًا أصلية لنظام التشغيل Android لتشغيل المشاركة.


الزر مشاركة

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

ShareButton shareButton = (ShareButton)findViewById(R.id.fb_share_button);
shareButton.setShareContent(content);

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

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

ShareDialog.show(activityOrFragment, content);

على سبيل المثال، لعرض ShareDialog لرابط في نشاطك، أنشئ المثيل ShareDialog في الأسلوب onCreate لديك:

public class MainActivity extends FragmentActivity {
    CallbackManager callbackManager;
    ShareDialog shareDialog;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        callbackManager = CallbackManager.Factory.create();
        shareDialog = new ShareDialog(this);
        // this part is optional
        shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... });
    }

بعد ذلك، اعرض ShareDialog:

if (ShareDialog.canShow(ShareLinkContent.class)) {
    ShareLinkContent linkContent = new ShareLinkContent.Builder()
            .setContentUrl(Uri.parse("http://developers.facebook.com/android"))
            .build();
    shareDialog.show(linkContent);
}

وأخيرًا، قم باستدعاء callbackManager لمجموعة SDK في onActivityResult لمعالجة الاستجابة:

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

إذا كنت تستخدم أجزاء أو أنشطة AndroidX، فلا داعي لتجاوز onActivityResult.

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

يتم من خلال مربع الحوار "رسالة" التبديل إلى تطبيق Messenger لنظام التشغيل Android الأصلي، ثم يقوم بإرجاع عنصر التحكم إلى تطبيقك بعد نشر المنشور. بناءً على مجموعة SDK التي تستخدمها، قد يحتاج الأشخاص إلى الضغط على أيقونة السهم للخلف للرجوع إلى تطبيقك.

MessageDialog.show(activityOrFragment, content);

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

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

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

ShareLinkContent content = new ShareLinkContent.Builder()
        .setContentUrl(Uri.parse("https://developers.facebook.com"))
        .setShareHashtag(new ShareHashtag.Builder()
                .setHashtag("#ConnectTheWorld")
                .build());
        .build();

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

أدوات المشاركة البديلة المضمنة

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

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

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