Setiap jenis alur login memiliki metodenya sendiri untuk meminta izin, bergantung pada platform dan cara Anda memilih untuk mengintegrasikan Facebook Login:
scope
dengan panggilan fungsi FB.login
.scope
ke URL dialog login tujuan pengalihan.scope
saat meluncurkan asosiasi URI.Harap diperhatikan bahwa banyak API yang tercantum di atas juga dapat digunakan untuk meminta izin tambahan nanti selama masa pakai aplikasi, tidak hanya saat login awal.
Sebagai aturan umum, makin banyak izin yang diminta aplikasi, makin kecil kemungkinan orang akan menggunakan Facebook untuk login ke aplikasi Anda. Faktanya, penelitian kami menunjukkan bahwa aplikasi yang meminta lebih dari empat izin mengalami penurunan yang signifikan dalam jumlah penyelesaian login.
Berikut adalah beberapa panduan untuk digunakan saat meminta izin, baik selama dan setelah login:
Hanya minta izin yang penting untuk suatu aplikasi.
Mintalah izin dalam konteks yang diperlukan. Contoh: jika aplikasi Anda ingin menampilkan tempat menarik di dekat lokasi seseorang, minta user_location
sesaat sebelum menampilkan informasi tersebut akan memberikan pemahaman yang lebih besar kepada orang tersebut tentang alasan di balik permintaan izin.
Pisahkan permintaan izin baca dan terbitkan. Untuk detail selengkapnya, lihat di bawah.
Jangan pernah meminta izin yang menurut Anda mungkin diperlukan di masa mendatang. Orang akan curiga dan mungkin menolak aplikasi Anda.
Beri tahu orang jauh sebelumnya alasan Anda meminta izin. Penjelasan mengapa Anda memerlukan akses ke sesuatu akan meningkatkan kemungkinan pengguna bersedia memberikan izin.
Aplikasi harus memisahkan permintaan izin baca dan menerbitkan. Rencanakan aplikasi Anda dengan meminta izin baca minimal saat login awal dan kemudian izin menerbitkan saat seseorang benar-benar membutuhkannya, misalnya saat mereka ingin membuat cerita Grafik Terbuka dari dalam aplikasi. Ini memberikan pengalaman pengguna terbaik dan mengoptimalkan konversi.
Anda mungkin menerima Pemberitahuan Developer jika aplikasi Anda meminta izin untuk membaca dan menerbitkan secara berurutan. Untuk berhenti menerima pemberitahuan ini, pisahkan permintaan Anda atau ikuti panduan di bawah untuk kasus-kasus pengecualian.
Dalam kasus yang jarang terjadi, aplikasi Anda memerlukan izin menerbitkan di awal (contoh: aplikasi yang tidak melakukan apa pun selain menerbitkan suasana hati seseorang ke Facebook) hanya meminta izin baca minimal saat login awal. Setelah orang tersebut masuk, tunjukkan layar kepada orang tersebut yang menjelaskan alasan aplikasi Anda memerlukan izin menerbitkan dan beri tombol agar orang tersebut bisa mengeklik dan berpartisipasi dalam permintaan izin menerbitkan. Ini akan memberi pengguna lebih banyak konteks dan meningkatkan konversi Anda.
Satu contoh di mana Anda mungkin harus meminta izin baca dan tulis secara berurutan adalah saat pertama kali Anda mengaitkan akun berbasis email dengan akun Facebook seseorang. Ini biasanya dilakukan ketika seseorang ingin membagikan cerita di Linimasa Facebook mereka. Saat aplikasi Anda membuat dialog login, orang tersebut akan melihat dua dialog berturut-turut - satu untuk menghubungkan akun mereka ke aplikasi Anda dan yang satunya meminta izin menerbitkan. Untuk kasus ini, pastikan bahwa satu-satunya izin baca yang Anda minta adalah public_profile. Ini memberikan pengalaman pengguna terbaik karena pengguna ingin menerbitkan dari aplikasi Anda dan sering kali tidak tertarik untuk memberikan izin baca tambahan. Ini juga akan meningkatkan konversi Anda.
Facebook menawarkan kontrol penuh kepada orang-orang atas izin yang mereka berikan ke aplikasi. Kontrol itu melampaui titik tempat mereka melihat dialog login. Mereka dapat memilih untuk tidak memberikan izin tertentu selama proses login. Mereka juga dapat mencabut izin di pengaturan privasi Facebook mereka kapan saja. Aplikasi harus memeriksa validitas izin sebelum mencoba melakukan panggilan API jika diperlukan. Contoh: memeriksa bahwa izin email
masih diberikan sebelum mengirimkan pesan.
Untuk aplikasi web, kami menyediakan endpoint Graph API untuk mengambil daftar izin yang diberikan:
GET /{user-id}/permissions
Panggilan harus dibuat dengan token akses pengguna atau token akses aplikasi Anda. Panggilan akan memberikan string JSON berisi nama izin yang telah diberikan ke aplikasi dan statusnya:
{ "data": [ { "permission": "public_profile", "status": "granted" }, { "permission": "email", "status": "granted" }, { "permission": "user_friends", "status": "declined" } ] }
Kami juga menyediakan metode di Facebook SDK untuk iOS dan Android yang memberikan perwakilan ramah platform dari izin yang telah diberikan ke aplikasi Anda.
Saat aplikasi meminta izin, orang mungkin sepenuhnya menolak izin tersebut, tidak sepenuhnya memberikan izin tersebut, atau mengubahnya nanti. Untuk memberikan pengalaman yang baik, aplikasi harus dibuat untuk menangani situasi-situasi ini.
Pertama, aplikasi harus dapat menangani izin apa pun yang diminta tetapi tidak diberikan:
{ "error": { "message": "(#200) The user hasn't authorized the application to perform this action", "type": "OAuthException", "code": 200 } }
Setelah aplikasi mendeteksi bahwa seseorang telah menolak beberapa atau semua izin, aplikasi tersebut dapat meneruskan orang itu agar kembali ke alur login satu kali dan meminta izin yang diperlukan. Namun, ini adalah pengalaman yang buruk dan harus dihindari jika memungkinkan. Jika seseorang secara aktif memilih untuk tidak memberikan izin khusus ke aplikasi, mereka tidak akan berubah pikiran, bahkan jika diminta terus-menerus. Sebagai gantinya, lakukan hal berikut:
Jika seseorang menolak dialog login, berikan penjelasan di muka dengan jelas tentang alasan Anda meminta setiap izin tersebut. Lalu biarkan mereka mengeklik atau mengetuk untuk memilih kembali ke dialog permintaan izin. Jangan langsung mengarahkan mereka ke dialog permintaan izin tanpa penjelasan.
Jika seseorang telah menolak izin untuk aplikasi Anda, dialog login tidak akan mengizinkan aplikasi Anda meminta ulang izin kecuali Anda meneruskan auth_type=rerequest
bersama dengan permintaan Anda.
Jika seseorang telah memberikan beberapa izin tetapi belum semua izin yang dibutuhkan, hanya minta izin yang dibutuhkan namun belum diberikan. Contoh: jika aplikasi mengirimkan konfirmasi pesanan ke email pengguna, hanya minta email
saat pengguna memesan.
Kecuali jika izin yang Anda minta dalam login sangat penting untuk fungsi aplikasi Anda dan fitur tidak berfungsi tanpa izin tersebut, biarkan orang terus menggunakan aplikasi Anda tanpa izin tersebut.
Anda mungkin menerima Pemberitahuan Developer jika aplikasi Anda berulang kali mengarahkan pengguna ke dialog izin setelah mereka menolak izin. Untuk berhenti menerima pemberitahuan ini, ikuti panduan ini.
Aplikasi dapat memungkinkan orang mencabut izin yang sebelumnya diberikan. Contoh: aplikasi Anda dapat memiliki halaman pengaturan yang memungkinkan seseorang menonaktifkan pengiriman pesan email kepada mereka. Halaman pengaturan itu juga bisa mencabut izin email
secara bersamaan.
Anda dapat mencabut izin khusus dengan melakukan panggilan ke endpoint Graph API:
DELETE /{user-id}/permissions/{permission-name}
Permintaan ini harus dibuat dengan token akses pengguna atau token akses aplikasi untuk aplikasi saat ini. Jika permintaan berhasil, Anda akan menerima tanggapan true
.
Anda juga dapat mengizinkan orang untuk sepenuhnya membatalkan otorisasi aplikasi, atau mencabut login, dengan melakukan panggilan ke endpoint Graph API ini:
DELETE /{user-id}/permissions
Permintaan ini harus dibuat dengan token akses pengguna atau token akses aplikasi yang valid untuk aplikasi saat ini. Jika permintaan berhasil, aplikasi Anda akan menerima tanggapan true
. Jika panggilan berhasil, token akses pengguna untuk orang tersebut akan dibatalkan dan mereka harus login lagi. Karena Anda membatalkan otorisasi aplikasi, mereka juga harus memberikan akses ke aplikasi Anda seolah-olah mereka login untuk pertama kali.