Mengelola Izin untuk Android

Selama login dasar, aplikasi Anda menerima akses ke profil publik dan email seseorang. Untuk mengakses informasi profil tambahan atau menerbitkan konten di Facebook mewakili seseorang, Anda harus meminta izin yang diperlukan:

  • Kolom Profil Publik Default - Memberi akses ke informasi profil dasar.

  • Izin Baca - Semua informasi lain yang ditambahkan seseorang ke profil Facebook-nya diamankan oleh izin baca lainnya.

  • Izin Tulis - Aplikasi memerlukan izin penerbitan yang terpisah untuk mengirim konten mewakili orang itu.

Berikut adalah cara mengelola izin di aplikasi Anda:

  • Jika aplikasi Anda mengirimkan permintaan Facebook untuk seseorang, sebaiknya periksa izin yang diperlukan dan mintalah izin tersebut jika perlu.

  • Aplikasi Anda harus menangani kesalahan izin yang hilang dari Facebook dengan meminta izin dan mencoba ulang.

  • Orang yang menggunakan aplikasi Anda dapat membatalkan izin di Facebook, namun Anda juga dapat menerapkan ini di aplikasi Anda.

  • Anda juga dapat memungkinkan orang menghapus hak istimewa login dasar dari aplikasi Anda, dengan menerapkan mekanisme untuk membatalkan login seluruhnya.

Pelajari selengkapnya tentang berbagai izin yang tersedia di Panduan Izin.

Orang-orang sangat waspada perihal pemberian izin menerbitkan, jadi Anda sebaiknya meminta izin menerbitkan setelah seseorang siap untuk memposting sesuatu dari aplikasi Anda dan tidak pada saat login awal.

Mendapatkan Izin Tambahan

Selama login dasar, aplikasi Anda menerima akses ke profil publik dan email seseorang. Untuk mengakses informasi profil tambahan atau menerbitkan konten di Facebook mewakili orang itu, Anda harus meminta izin yang diperlukan.

Di sini kita mendapatkan user_status. Anda dapat meneruskan izin ini ke tombol LoginButton atau UI khusus untuk login dan izin.

Di kelas MainFragment, ubah kode di onCreateView():

...
LoginButton authButton = (LoginButton)view.findViewById(R.id.authButton);
authButton.setFragment(this);
authButton.setReadPermissions(Arrays.asList("user_status"));

return view;
...

Mendapatkan Izin Baca

LoginManager merupakan instance singleton, dan berfungsi dengan currentAccessToken milik Token Akses. Setelah login berhasil, currentAccessToken akan diatur. Untuk meminta izin tambahan, cukup panggil metode logInWithPermissionName.

Metode logInWithPermissionName selalu membuka UI dan meminta izin tambahan dari seseorang jika diperlukan. Untuk mendapatkan izin tambahan dari seseorang, buat permintaan ini dengan Facebook SDK untuk Android:

LoginManager.getInstance().logInWithReadPermissions(
    fragmentOrActivity,
    Arrays.asList("email"));

Gunakan ini untuk meminta izin melebihi yang sudah diberikan kepada aplikasi. Anda dapat menggunakan ini setelah login awal.

Anda juga dapat meminta banyak izin baca yang tercantum di Referensi Izin.

Mendapatkan Izin Penerbitan

Anda dapat meminta berapa pun jumlah izin baca atau izin penerbitan selama login. Jika meminta lebih dari empat izin akan mengalami penurunan signifikan dalam jumlah login yang selesai.

Sejak 24 April 2018, izin pubish_actions sudah dihapus. Harap lihat Catatan Perubahan Sela untuk informasi selengkapnya. Guna memberikan cara bagi para Pengguna aplikasi Anda untuk membagikan konten ke Facebook, kami menyarankan Anda untuk menggunakan produk Berbagi.

Permintaan izin penerbitan dengan publish_actions pada saat login akan menciptakan langkah kedua di UI login. Jadi, Anda harus meminta izin baca minimal selama login, lalu meminta izin tambahan atau izin penerbitan saat seseorang benar-benar membutuhkannya. Untuk mengoptimalkan permintaan izin Anda, lihat Mengoptimalkan Izin.

Untuk meminta izin penerbitan di aplikasi Anda, Anda dapat menggunakan LoginManager.

LoginManager.getInstance().logInWithPublishPermissions(
    fragmentOrActivity,
    Arrays.asList("publish_actions"));

Hal ini akan meminta izin selain yang sudah diterima aplikasi selama login.

Meminta Ulang Izin

Orang dapat memberikan sebagian kecil izin yang Anda minta, kecuali untuk public profile yang diberikan pada saat login.

Untuk mendapat daftar izin yang terkait dengan token akses saat ini, panggil:

AccessToken.getCurrentAccessToken().getPermissions();

Untuk mendapat daftar izin yang ditolak, panggil:

AccessToken.getCurrentAccessToken().getDeclinedPermissions();

Aplikasi Anda harus menangani kasus saat seseorang menolak memberikan salah satu izin yang diminta aplikasi Anda. Jika aplikasi Anda harus memiliki salah satu dari izin yang ditolak agar dapat berfungsi, Anda dapat meminta izin tersebut lagi dengan menggunakan LoginManager sebagaimana contoh di atas.

Tinjauan Login

Saat Anda menerapkan Facebook Login, aplikasi Anda dapat secara opsional meminta izin seseorang tentang subset data orang tersebut.

Jika aplikasi Anda meminta selain kolom profil publik default dan email, Facebook harus meninjaunya sebelum Anda merilis aplikasi tersebut. Pelajari selengkapnya tentang proses tinjauan dan apa yang dibutuhkan untuk lulus tinjauan.

Panduan Tinjauan Login