Dokumen ini memberikan panduan tentang langkah-langkah untuk menerapkan Facebook Login dengan SDK Facebook untuk JavaScript di halaman web Anda.
Jika Anda pengguna Facebook dan kesulitan login ke akun, buka Pusat Bantuan kami.
Anda akan membutuhkan hal-hal berikut:
Jika karena suatu alasan Anda tidak dapat menggunakan SDK JavaScript kami, Anda dapat membuat alur login secara manual untuk menerapkan Facebook Login.
Di Dasbor Aplikasi, pilih aplikasi Anda dan buka Tambahkan Produk Klik Siapkan di kartu Facebook Login. Pilih Pengaturan di panel navigasi sisi kiri dan dalam Pengaturan OAuth Klien, masukkan URL pengalihan Anda di kolom URL Pengalihan OAuth yang Valid untuk otorisasi.
Langkah pertama saat halaman web Anda dimuat adalah mencari tahu apakah seseorang sudah login ke aplikasi Anda dengan Facebook Login. Panggilan FB.getLoginStatus akan memulai panggilan ke Facebook untuk mendapatkan status login. Facebook kemudian memanggil fungsi callback Anda dengan hasilnya.
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});{
status: 'connected',
authResponse: {
accessToken: '{access-token}',
expiresIn:'{unix-timestamp}',
reauthorize_required_in:'{seconds-until-token-expires}',
signedRequest:'{signed-parameter}',
userID:'{user-id}'
}
}status menetapkan status login orang yang menggunakan halaman web. status dapat berupa salah satu dari berikut ini:
Jenis Status | Deskripsi |
|---|---|
| Orang tersebut login ke Facebook, dan sudah login ke halaman web Anda. |
| Orang tersebut login ke Facebook, tetapi belum login ke halaman web Anda. |
| Orang tersebut tidak login ke Facebook, jadi Anda tidak tahu apakah mereka sudah login ke halaman web Anda atau belum. Atau FB.logout() telah dipanggil sebelumnya, dan oleh karenanya tidak dapat masuk ke Facebook. |
Jika statusnya adalah connected, parameter authResponse berikut tercantum dalam tanggapan:
Parameter authResponse | Nilai |
|---|---|
| Token akses untuk orang yang menggunakan halaman web. |
| Stempel waktu UNIX saat token kedaluwarsa. Setelah token kedaluwarsa, orang tersebut akan harus login lagi. |
| Jumlah waktu sebelum login kedaluwarsa, dalam satuan detik, dan orang tersebut akan harus login lagi. |
| Parameter yang ditandatangani, yang berisi informasi tentang orang yang menggunakan halaman web Anda. |
| ID orang yang menggunakan halaman web Anda. |
SDK JavaScript otomatis mendeteksi status login, jadi Anda tidak perlul melakukan tindakan tambahan untuk mengaktifkan perilaku ini.
Jika seseorang membuka halaman web Anda tetapi tidak login ke sana atau ke Facebook, Anda dapat menggunakan dialog Login untuk mendorong mereka login ke keduanya. Jika tidak login ke Facebook, dia pertama-tama akan diminta untuk login ke Facebook, kemudian diminta untuk login ke halaman web Anda.
Ada dua cara untuk membuat seseorang login:
Untuk menggunakan Tombol Facebook Login, gunakan Konfigurator Plugin kami untuk menyesuaikan Tombol Login dan mendapatkan kode.
Untuk menggunakan tombol login Anda sendiri, picu Dialog Login dengan panggilan ke FB.login().
FB.login(function(response){
// handle the response
});Saat seseorang mengklik tombol HTML Anda, jendela pop-up dengan dialog Login akan ditampilkan. Dialog ini memungkinkan Anda meminta izin untuk mengakses data seseorang. Parameter scope dapat dimasukkan beserta panggilan fungsi FB.login(). Parameter opsional ini adalah daftar izin, yang dipisahkan koma, yang harus dikonfirmasi oleh seseorang untuk memberi halaman web Anda akses ke datanya.
Contoh ini bertanya kepada orang yang login apakah halaman web Anda diizinkan untuk mengakses profil publik dan emailnya.
FB.login(function(response) {
// handle the response
}, {scope: 'public_profile,email'});Tanggapannya, apakah untuk menghubungkan atau membatalkan, menghasilkan sebuah objek authResponse ke callback yang ditetapkan saat Anda memanggil FB.login(). Tanggapan ini dapat dideteksi dan ditangani di dalam panggilan FB.login().
FB.login(function(response) {
if (response.status === 'connected') {
// Logged into your webpage and Facebook.
} else {
// The person is not logged into your webpage or we are unable to tell.
}
});Buat seseorang logout dari halaman web Anda dengan melampirkan fungsi SDK JavaScript FB.logout() ke sebuah tombol atau tautan.
FB.logout(function(response) {
// Person is now logged out
});Catatan: Panggilan fungsi ini juga dapat mengeluarkan orang dari Facebook.
Selain itu, logout dari halaman web Anda tidak mencabut izin yang diberikan orang tersebut kepada halaman web Anda selama login. Mencabut izin harus dilakukan secara terpisah. Bangun halaman web Anda sedemikian rupa sehingga seseorang yang telah logout tidak akan melihat dialog Login saat mereka kembali login.
Kode ini memuat dan menginisialisasi SDK JavaScript dalam halaman HTML Anda. Ganti {app-id} dengan ID aplikasi Anda dan {api-version} dengan versi API Graf yang akan digunakan. Kecuali Anda memiliki alasan spesifik untuk menggunakan versi yang lebih lama, masukkan versi yang paling baru: v5.0.
<!DOCTYPE html>
<html>
<head>
<title>Facebook Login JavaScript Example</title>
<meta charset="UTF-8">
</head>
<body>
<script>
function statusChangeCallback(response) { // Called with the results from FB.getLoginStatus().
console.log('statusChangeCallback');
console.log(response); // The current login status of the person.
if (response.status === 'connected') { // Logged into your webpage and Facebook.
testAPI();
} else { // Not logged into your webpage or we are unable to tell.
document.getElementById('status').innerHTML = 'Please log ' +
'into this webpage.';
}
}
function checkLoginState() { // Called when a person is finished with the Login Button.
FB.getLoginStatus(function(response) { // See the onlogin handler
statusChangeCallback(response);
});
}
window.fbAsyncInit = function() {
FB.init({
appId : '{app-id}',
cookie : true, // Enable cookies to allow the server to access the session.
xfbml : true, // Parse social plugins on this webpage.
version : '{api-version}' // Use this Graph API version for this call.
});
FB.getLoginStatus(function(response) { // Called after the JS SDK has been initialized.
statusChangeCallback(response); // Returns the login status.
});
};
(function(d, s, id) { // Load the SDK asynchronously
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
function testAPI() { // Testing Graph API after login. See statusChangeCallback() for when this call is made.
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
document.getElementById('status').innerHTML =
'Thanks for logging in, ' + response.name + '!';
});
}
</script>
// The JS SDK Login Button
<fb:login-button scope="public_profile,email" onlogin="checkLoginState();">
</fb:login-button>
<div id="status">
</div>
</body>
</html>