Salah satu komponen paling penting untuk membuka Dialog Login adalah memilih data apa yang ingin diakses aplikasi Anda. Contoh-contoh ini semuanya menggunakan parameter scope
, yang merupakan cara Anda meminta akses ke data seseorang. Ini semua disebut Izin.
Izin dibahas lebih dalam di panduan izin kami. Namun, ada beberapa hal untuk diingat saat membahas tentang izin dan dialog login:
email
harus ditinjau oleh Facebook sebelum boleh tersedia bagi publik. Pelajari selengkapnya dalam dokumentasi kami untuk tinjauan login dan pedoman tinjauan umum kami.Salah satu praktik terbaik dengan Facebook Login adalah tidak meminta izin baca dan izin penerbitan pada waktu bersamaan. Untuk mendukung ini, aplikasi Anda dapat meminta izin lainnya nanti, setelah seseorang login. Untuk melakukannya, semua yang harus Anda lakukan adalah membuka Dialog Login dengan izin baru yang Anda minta.
Contoh: katakanlah Anda memiliki Tombol Login dengan izin berikut:
<fb:login-button scope="public_profile" onlogin="checkLoginState();"> </fb:login-button>
Dan jika Anda memeriksa /me/permissions
untuk izin yang diberikan setelah orang itu menerima, Anda akan melihat seperti ini:
{"data": [ { "permission":"public_profile", "status":"granted" } ] }
Jika Anda ingin menambahkan izin email
nanti, Anda dapat membukanya kembali dengan fungsi FB.login()
seperti ini:
FB.login(function(response) { console.log(response); }, {scope: 'email'});
(Fungsi ini harus dipanggil dari handler peristiwa tombol, jika tidak kemungkinan akan diblokir oleh pemblokir jendela popup browser.)
Perhatikan bahwa yang diminta hanya izin baru. Jika Anda menerima pemeriksaan izin baru, /me/permissions
akan menghasilkan ini:
{"data": [ { "permission":"public_profile", "status":"granted" }, { "permission":"email", "status":"granted" } ] }
Perhatikan bahwa izin baru email
telah ditambahkan ke daftar izin yang diizinkan.
Dengan Facebook Login, orang dapat menolak membagikan izin dengan aplikasi Anda. Jika seseorang menolak user_likes
(Suka), mencentang /me/permissions
untuk izin apa yang telah diberikan menghasilkan:
{ "data": [ { "permission":"public_profile", "status":"granted" }, { "permission":"user_likes", "status":"declined" } ] }
Perhatikan bahwa user_likes
sudah ditolak, dan bukan diberikan.
Tidak mengapa jika meminta seseorang sekali untuk memberikan izin bagi aplikasi Anda yang pernah ditolak. Anda seharusnya memiliki layar edukasi tentang mengapa mereka sebaiknya memberikan izin kepada Anda, kemudian meminta ulang. Akan tetapi, jika Anda menggunakan metode yang dijelaskan di bagian sebelumnya, maka Dialog Login tidak akan meminta izin tersebut.
Ini karena setelah seseorang menolak izin, Dialog Login tidak akan meminta ulang orang tersebut kecuali Anda secara tegas memberitahukan dialog bahwa Anda meminta ulang izin yang ditolak.
Anda melakukan ini dengan menambahkan bendera auth_type: rerequest
ke panggilan FB.login()
Anda:
FB.login( function(response) { console.log(response); }, { scope: 'user_likes', auth_type: 'rerequest' } );
Saat Anda melakukan itu, Dialog Login akan meminta ulang izin yang ditolak. Dialognya akan sangat mirip dengan dialog di bagian tentang meminta ulang izin, tapi akan memungkinkan Anda meminta ulang izin yang ditolak.