Berbagi di iOS

Panduan ini menjelaskan secara rinci cara mengaktifkan berbagi dari aplikasi iOS Anda ke Facebook. Apabila seseorang berbagi dari aplikasi Anda, konten mereka muncul di Kronologi dan Kabar Berita teman mereka.

Orang juga dapat membagikan konten dari aplikasi Anda ke Facebook Messenger dengan Platform Ekspresi Messenger atau dari Dialog Pesan Berbagi di SDK iOS.

SDK Messenger untuk iOSDialog Pesan

Prasyarat

Sebelum menambahkan berbagi ke aplikasi, Anda harus:

  • Menambahkan SDK Facebook untuk iOS ke lingkungan pengembangan seluler Anda
  • Mengonfigurasi dan menautkan ID aplikasi Facebook
  • Tambahkan ID aplikasi Anda, dan alasan yang mudah dibaca manusia untuk akses foto ke file .plist aplikasi Anda.
  • Menautkan FBSDKShareKit.framework ke proyek Anda.

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

Memulai SDK iOS

Konten Pemodelan

SDK Facebook versi 4.0+ memiliki model baru untuk membagikan konten. Setiap jenis konten memiliki antarmuka yang dapat Anda gunakan untuk mewakili yang sesuai dengan <FBSDKSharingContent>. Setelah Anda menetapkan model konten, tambahkan antarmuka berbagi ke aplikasi Anda yang sesuai dengan <FBSDKSharing> seperti FBSDKShareDialog.

Pada saat orang membagikan tautan dari aplikasi Anda ke Facebook, tindakan ini menyertakan contentURL dengan tautan yang akan dibagikan. Bangun konten berbagi Anda untuk tautan dengan model FBSDKShareLinkContent. Untuk daftar semua atribut, lihat referensi FBSDKShareLinkContent.

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 - mewakili judul konten di tautan
  • imageURL - URL gambar mini yang muncul di kiriman
  • contentDescription - dari konten, biasanya 2-4 kalimat

Berikut ini contoh bagaimana Anda dapat memicu berbagi:

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

Catatan: Jika aplikasi Anda membagikan tautan ke toko iTunes atau Google Play, kami tidak mengirim gambar atau deskripsi yang Anda tentukan pada aplikasi yang dibagikan. Sebagai gantinya kami mengirimkan beberapa informasi aplikasi yang kami ambil dari toko aplikasi secara langsung dengan Webcrawler. Informasi ini mungkin tidak termasuk gambar. Untuk mempratinjau berbagi tautan ke iTunes atau Google Play, masukkan URL Anda ke dalam Alat Debug Berbagi.

Foto

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

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

Buat konten berbagi untuk foto dengan model FBSDKSharePhotoContent. Untuk daftar semua atribut, lihat referensi 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];
  ...
}

Video

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

  • Video harus berukuran kurang dari 12MB.
  • Orang yang membagikan harus sudah memasang Facebook untuk klien iOS, versi 26.0 ke atas.

Buat konten berbagi Anda untuk video dengan model FBSDKShareVideoContent. Untuk daftar semua atribut, lihat referensi 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 video videoURL harus merupakan URL aset. Anda dapat memperoleh URL aset video, mis. dari UIImagePickerController.

Multimedia

Orang yang menggunakan aplikasi Anda dapat membagikan kombinasi foto dan video ke Facebook dengan dialog Bagikan. Perhatikan hal berikut:

  • Orang harus memiliki versi iOS 7.0 atau yang lebih baru.
  • Orang yang membagikan harus sudah memasang Facebook untuk klien iOS, versi 52.0 ke atas.
  • Masing-masing foto dan video harus berukuran kurang dari 12MB.
  • Orang dapat membagikan maksimal 1 video ditambah hingga 29 foto atau 30 foto.

Buat konten berbagi multimedia Anda dengan model FBSDKShareMediaContent. Untuk daftar semua atribut, lihat referensi FBSDKShareMediaContent.

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

Metode Berbagi

Setelah menangani konten dengan membuat model, Anda dapat memicu dialog Bagikan atau Pesan atau antarmuka khusus sendiri untuk berbagi.

Tombol

Di iOS, Facebook memiliki tombol native untuk memicu berbagi.


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. Untuk menambahkan tombol Suka ke tampilan, tambahkan snippet kode berikut ke tampilan Anda:

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

Tombol Bagikan

Dengan Tombol Berbagi, Anda akan mengizinkan orang membagikan konten ke kronologi Facebook mereka ke kronologi teman atau di grup. Tombol Bagikan akan memanggil dialog Bagikan. Untuk menambahkan tombol Bagikan ke tampilan, tambahkan snippet kode berikut ke tampilan Anda:

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

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:

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

Jika aplikasi Messenger tidak dipasang, tombol Kirim akan disembunyikan. Pastikan tata letak aplikasi Anda tepat apabila tombol ini disembunyikan. Untuk memeriksa apakah tombol Kirim dapat ditampilkan pada perangkat saat ini, gunakan properti FBSDKSendButtonisHidden:

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

Dialog Bagikan

Untuk menggunakan pengalaman berbagi bawaan Facebook, Anda perlu menentukan konten seperti di bagian pemodelan konten di atas, lalu panggil Dialog Bagikan. Misalnya, untuk membagikan tautan dengan Dialog Bagikan:

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

Pada versi SDK untuk iOS sebelumnya, aplikasi Anda harus memeriksa aplikasi Facebook yang dipasang dan native 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.

Jika aplikasi Facebook native terpasang, SDK V4.0-V4.4 akan beralih ke aplikasi Facebook untuk iOS native, selanjutnya mengembalikan kontrol ke aplikasi Anda setelah kiriman diterbitkan. Jika Anda menggunakan SDK V4.5+, orang akan melihat Lembar Bagikan iOS, alih-alih beralih ke Facebook native untuk aplikasi iOS, kecuali berbagi berada dalam cerita Graf Terbuka.

Dialog Pesan

Dialog Pesan beralih ke aplikasi Messenger native untuk iOS, selanjutnya mengembalikan kontrol ke aplikasi Anda setelah kiriman diterbitkan.

[FBSDKMessageDialog showWithContent:content delegate:nil];

Catatan: Saat ini dialog pesan tidak didukung di iPad.

Integrasi iOS

iOS 6+ memasukkan lembar berbagi native yang memungkinkan orang mengirim pembaruan status, foto, video, dan tautan ke Facebook dan menyertakan dukungan pengaturan pemirsa untuk kiriman dan penandaan kiriman beserta lokasi. Anda tidak dapat membagikan Cerita Graf Terbuka dengan lembar berbagi. SDK Facebook mendukung penggunaan pengontrol native ini; dimulai dengan V4.5 SDK Facebook, pengalaman ini adalah yang dilihat orang di sebagian besar kasus ketika Anda memanggil Dialog Bagikan di Facebook.

Penggunaan lembar berbagi iOS harus mematuhi Kebijakan Platform Facebook, termasuk bab 2.3 yang menyatakan bahwa aplikasi tidak boleh diisi terlebih dahulu sebelumnya terkait dengan lembar berbagi. Artinya, aplikasi tidak boleh mengisi kolom Teks awal lembar berbagi secara otomatis dengan konten yang tidak dimasukkan oleh pengguna aplikasi tersebut.

API ini juga menggunakan blok gaya yang sama seperti bagian SDK Facebook yang lain. Untuk menunjukkan dialog bagikan native di iOS, gunakan:

// 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];

Perhatikan bahwa .fromViewController diperlukan untuk menyajikan lembar berbagi.

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.

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

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 bidangnya sendiri yang terpisah dari komentar pengguna.

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.";

Topik Lanjutan

Dengan Tautan Aplikasi Anda dapat 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

Agar dapat menggunakan antarmuka sendiri untuk berbagi, Anda harus:

Berikut adalah panggilan API Graf untuk mengirim tautan ke Facebook:

[FBSDKShareAPI shareWithContent:content delegate:nil];

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.

Cerita yang dibagikan ditautkan kembali ke aplikasi Anda atau ke halaman App Store aplikasi Anda.

Untuk mempelajari selengkapnya tentang cara menambahkan cerita khusus ke aplikasi Anda, lihat Cerita Graf Terbuka di iOS.

Buat konten berbagi untuk tindakan Graf Terbuka dengan model FBSDKShareOpenGraphContent. Untuk daftar semua atribut, lihat referensi 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";

Simulator dan Pengujian iOS

Jika Anda menggunakan Simulator untuk menguji berbagi di aplikasi Anda, maka Anda akan melihat kesalahan jika mencoba membagikan video atau Tindakan Graf Terbuka. Hal ini karena Anda harus memasang Facebook untuk iOS yang menyediakan Dialog Bagikan. Kami tidak mendukung ini untuk Simulator.

Dalam kasus berbagi tautan, Anda tidak perlu memasang Facebook untuk iOS sehingga kasus pengujian ini mungkin dilakukan. Untuk menguji skenario Berbagi, siapkan perangkat pengujian aktual dengan memasang Facebook untuk iOS.