Berbagi di Android

Panduan ini menjelaskan memerinci cara mengaktifkan berbagi dari aplikasi Android Anda ke Facebook. Apabila seseorang membagikan sesuatu dari aplikasi Anda, konten orang tersebut akan muncul di Linimasa dan Kabar Berita temannya.

Orang juga dapat membagikan konten dari aplikasi Anda ke Facebook Messenger.

Prasyarat

Sebelum Anda dapat membagikan ke Facebook dari aplikasi Anda, maka Anda harus menautkan atau mengunduh SDK Berbagi Facebook untuk Android.

SDK Berbagi untuk Android merupakan komponen SDK Facebook untuk Android. Untuk menggunakan SDK Berbagi Facebook di proyek Anda, jadikan SDK Berbagi Facebook dependensi di Maven, atau unduhlah. Pilih metode yang Anda inginkan dengan tombol berikut.

Menautkan SDK dengan Maven

  1. Dalam proyek Anda, buka your_app | Gradle Scripts | build.gradle (Project) dan tambahkan repositori berikut ini ke bagian buildscript { repositories {}} untuk mengunduh SDK dari Repositori Maven Central:
    mavenCentral() 
  2. Dalam proyek Anda, buka your_app | Gradle Scripts | build.gradle (Module: app) dan tambahkan compile statement berikut ini ke bagian dependencies{} untuk mengompilasi versi terbaru dari SDK:
    compile 'com.facebook.android:facebook-share:[4,5)'
  3. Buat proyek Anda.

Unduh SDK

Untuk mengunduh SDK, klik tombol berikut.

Unduh SDK

Saat Anda menggunakan SDK Berbagi Facebook, peristiwa dalam aplikasi Anda secara otomatis dibuat catatan log dan dikumpulkan untuk Facebook Analytics kecuali Anda menonaktifkan pembuatan log peristiwa otomatis. Untuk detail mengenai informasi apa yang dikumpulkan dan cara menonaktifkan pembuatan log peristiwa otomatis, lihat Pencatatan Log Peristiwa Aplikasi Otomatis.

Prasyarat Lebih Lanjut

Selain itu, Anda harus melakukan berikut ini:

Untuk penjelasan detail tentang persyaratan ini, lihat Android - Memulai.

Anda juga harus menyiapkan ContentProvider di AndroidManifest.xml, sementara {APP_ID} adalah ID aplikasi Anda:

<provider android:authorities="com.facebook.app.FacebookContentProvider{APP_ID}"
          android:name="com.facebook.FacebookContentProvider"
          android:exported="true"/>

Apabila menerapkan berbagi, aplikasi Anda tidak boleh terlebih dahulu mengisi konten yang akan dibagikan. Ini tidak sejalan dengan Kebijakan Platform Facebook, lihat Kebijakan Platform Facebook, 2.3.

Konten Pemodelan

SDK Facebook versi 4.0+ memiliki model baru untuk membagikan konten. Setiap jenis konten yang ingin dibagikan orang memiliki kelas yang dapat Anda gunakan untuk mewakilinya. Setelah Anda menetapkan model konten, tambahkan antarmuka berbagi ke aplikasi Anda.

Saat orang membagikan tautan dari aplikasi Anda ke Facebook, tindakan ini menyertakan contentURL dengan tautan yang akan dibagikan. Buat konten berbagi Anda untuk tautan di dalam model ShareLinkContent. Untuk daftar semua atribut, lihat referensi ShareLinkContent.

Per 18 April 2017, parameter berikut tidak lagi didukung oleh API Graf versi 2.9 dan lebih tinggi. Untuk versi 2.8 dan lebih rendah, parameter tersebut akan terus berfungsi hingga 17 Juli 2017.

  • contentTitle yang mewakili judul konten di tautan
  • imageURL, URL gambar mini yang akan muncul di kiriman
  • contentDescription dari konten, biasanya 2-4 kalimat

Berikut ini contoh bagaimana Anda dapat memicu berbagi:

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

Untuk melihat contoh berbagi tautan ke Google Play atau App Store, masukkan URL Anda ke dalam Debugger Berbagi.

Jika berbagi aplikasi Anda berisi tautan ke aplikasi di Google Play atau App Store, keterangan dan gambar yang disertakan dalam berbagi akan diabaikan. Sebaliknya, kami akan menelusuri store langsung untuk mendapatkan judul dan gambar aplikasi tersebut (dan jika tidak ada gambar, maka berbagi tidak akan menyertakannya)

Foto

Orang dapat membagikan foto dari aplikasi Anda ke Facebook dengan Dialog Bagikan atau dengan antarmuka khusus.

  • Foto harus berukuran kurang dari 12MB
  • Orang perlu memasang aplikasi Facebook untuk Android native, versi 7.0 ke atas

Buat konten berbagi Anda untuk foto ke dalam model SharePhotoContent. Untuk daftar semua atribut, lihat referensi SharePhotoContent.

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

Video

Orang yang menggunakan aplikasi Anda dapat membagikan video ke Facebook dengan dialog Bagikan atau dengan antarmuka khusus Anda.

Video harus berukuran kurang dari 12MB.

Buat konten berbagi Anda untuk video ke dalam model ShareVideoContent. Untuk daftar semua atribut, lihat referensi ShareVideoContent.

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

Multimedia

Orang dapat membagikan kombinasi foto dan video dari aplikasi Anda ke Facebook dengan Dialog Bagikan. Perhatikan hal berikut:

  • Orang perlu memasang aplikasi Facebook untuk Android native, versi 71 ke atas.
  • Foto harus berukuran kurang dari 12MB.
  • Video harus berukuran kurang dari 12MB.
  • Orang dapat membagikan maksimal 6 foto dan video dalam sekali waktu.

Buat konten berbagi multimedia Anda dengan model ShareMediaContent. Untuk daftar semua atribut, lihat referensi 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);

Tambahkan Antarmuka Berbagi

Setelah menangani konten dengan membuat model, Anda dapat memicu antarmuka berbagi Facebook atau membuat antarmuka sendiri yang memanggil API Graf.

Tombol

Facebook menawarkan tombol native untuk Android guna memicu berbagi.


Dengan perilisan versi 4.28.0 SDK Facebook untuk Android, Tombol Suka untuk Android tidak berlaku. Ini akan didukung hingga 5 Februari 2018.

Tombol Suka

Tombol Suka merupakan cara orang untuk membagikan konten dengan teman mereka secara cepat. Satu ketukan pada tombol Suka akan 'menyukai' beberapa konten dari aplikasi Anda dan membagikannya di Facebook. Tombol Suka dapat digunakan untuk menyukai Halaman Facebook atau objek Graf Terbuka serta dapat direferensikan oleh URL atau ID. Untuk menambahkan tombol Suka, tambahkan snippet kode berikut ke tampilan Anda:

LikeView likeView = (LikeView) findViewById(R.id.like_view);
likeView.setObjectIdAndType(
    "https://www.facebook.com/FacebookDevelopers",
    LikeView.ObjectType.PAGE);

Tombol Bagikan

Tombol Bagikan akan memanggil dialog Bagikan. Untuk menambahkan tombol Bagikan, tambahkan snippet kode berikut ke tampilan Anda:

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

Dengan perilisan SDK Facebook versi 4.28.0, Tombol Kirim tidak berlaku. Ini akan didukung hingga 5 Februari 2018.

Tombol Kirim

Tombol Kirim memungkinkan orang mengirimkan foto, video, dan tautan secara pribadi kepada teman dan kontak mereka menggunakan Facebook Messenger. Tombol Kirim akan memanggil dialog Pesan. Untuk menambahkan tombol Kirim ke tampilan, tambahkan snippet kode berikut ke tampilan Anda:

SendButton sendButton = (SendButton)findViewById(R.id.fb_send_button);
sendButton.setShareContent(shareContent);
sendButton.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... });

Dialog Bagikan

Dialog Bagikan beralih ke Facebook native untuk aplikasi Android, selanjutnya mengembalikan kontrol ke aplikasi Anda setelah kiriman diterbitkan. Tergantung SDK yang Anda gunakan, orang-orang mungkin harus mengetuk ikon panah kembali untuk kembali ke aplikasi Anda. Jika aplikasi Facebook tidak dipasang, dialog Bagikan secara otomatis akan kembali ke dialog berbasis web.

ShareDialog.show(activityOrFragment, content);

Misalnya, guna menampilkan ShareDialog untuk tautan di aktivitas Anda, buat contoh ShareDialog pada metode onCreate Anda:

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>() { ... });
    }

Selanjutnya, tampilkan ShareDialog:

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

Terakhir, panggil callbackManager SDK di onActivityResult Anda untuk menangani tanggapan:

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

Dialog Pesan

Dialog Pesan beralih ke Messenger native untuk aplikasi Android, selanjutnya mengembalikan kontrol ke aplikasi Anda setelah kiriman diterbitkan. Tergantung SDK yang Anda gunakan, orang-orang mungkin harus mengetuk ikon panah kembali untuk kembali ke aplikasi Anda.

MessageDialog.show(activityOrFragment, content);

Fitur Tambahan

Apabila Anda menggunakan dialog bagikan Facebook, Anda memiliki opsi tambahan yang tidak tersedia ketika Anda membagikan melalui API.

Tagar

Anda dapat menentukan tagar tunggal untuk ditampilkan bersama foto, tautan, atau video yang dibagikan. Tagar ini juga muncul di dialog Bagikan, dan orang dapat menghapusnya sebelum menerbitkan.

Berikut adalah contoh penambahan tagar ke berbagi tautan.

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

Berbagi Kutipan

Anda dapat mengizinkan orang menyoroti teks agar muncul sebagai kutipan beserta tautan yang dibagikan. Atau, Anda dapat menentukan terlebih dahulu sebuah kutipan, misalnya sebuah pull quote di artikel, untuk ditampilkan bersama tautan yang dibagikan. Di kedua kasus ini, kutipan muncul di kolomnya sendiri yang terpisah dari komentar pengguna.

ShareLinkContent content = new ShareLinkContent.Builder()
        .setContentUrl(Uri.parse("https://developers.facebook.com"))
        .setQuote("Connect on a global scale.")
        .build();

Topik Lanjutan

Fallback Berbagi Bawaan

Pada versi SDK untuk Android sebelumnya, aplikasi Anda harus memeriksa karakteristik native aplikasi Facebook yang dipasang sebelum dapat membuka Dialog Bagikan. Jika seseorang belum memasang aplikasi, Anda harus menyediakan kode sendiri untuk memanggil dialog fallback.

Sekarang, SDK memeriksa karakteristik native aplikasi Facebook secara otomatis. Jika tidak dipasang, SDK mengalihkan orang ke browser default mereka dan membuka Dialog Kabar. Jika seseorang ingin membagikan cerita Graf Terbuka, SDK membuka Dialog Bagikan Web.

Dengan Tautan Aplikasi, Anda menautkan kembali ke aplikasi dari kiriman Facebook yang diterbitkan dari aplikasi Anda. Ketika orang mengeklik kiriman Facebook yang diterbitkan dari aplikasi Anda, tindakan ini membuka aplikasi, dan Anda bahkan dapat menautkan ke konten tertentu di dalam aplikasi.

Antarmuka Khusus

Jika Anda ingin menggunakan antarmuka sendiri untuk berbagi, Anda harus:

  • Membuat antarmuka khusus yang mengirim ke endpoint API Graf /me/feed
  • Menerapkan Facebook Login di aplikasi Anda
  • Meminta izin publish_actions apabila orang masuk ke aplikasi Anda

Berikut ini kode untuk mengirim tautan ke Facebook dari antarmuka Anda sendiri:

ShareApi.share(content, null);

Membagikan Cerita Graf Terbuka

Dengan Cerita Graf Terbuka, orang dapat membagikan konten kaya dan terstruktur melalui API berjenis kuat yang ditetapkan oleh tindakan dan objek Graf Terbuka. Kiriman ini menautkan kembali ke aplikasi Anda atau ke halaman App Store dari aplikasi Anda.

Untuk mempelajari tentang cara mengonfigurasi cerita Graf Terbuka, lihat Cerita Graf Terbuka di Android.

Buat konten berbagi untuk tindakan Graf Terbuka ke dalam model ShareOpenGraphContent. Untuk daftar semua atribut, lihat referensi ShareOpenGraphContent.

ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
        .putString("og:type", "fitness.course")
        .putString("og:title", "Sample Course")
        .putString("og:description", "This is a sample course.")
        .putInt("fitness:duration:value", 100)
        .putString("fitness:duration:units", "s")
        .putInt("fitness:distance:value", 12)
        .putString("fitness:distance:units", "km")
        .putInt("fitness:speed:value", 5)
        .putString("fitness:speed:units", "m/s")
        .build();
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
        .setActionType("fitness.runs")
        .putObject("fitness:course", object)
        .build();
ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
        .setPreviewPropertyName("fitness:course")
        .setAction(action)
        .build();