Facebook Login untuk Perangkat

Jika Anda membutuhkan bantuan untuk Portal Facebook, buka Pusat Bantuan Portal.

Untuk memasukkan kode Facebook for Devices untuk login ke smart TV, kamera, printer, atau perangkat lain, kunjungi Halaman Facebook for Devices.

Terapkan Facebook Login untuk Perangkat untuk memungkinkan orang login ke aplikasi atau layanan Anda dengan akun Facebook. Fitur ini memungkinkan orang login ke perangkat dengan input atau kapabilitas tampilan yang terbatas, seperti smart TV, bingkai foto digital, atau perangkat Internet of Things.

Dengan login perangkat, perangkat Anda menampilkan kode alfanumerik dan meminta orang memasukkannya di halaman web di PC desktop atau smartphone-nya. Kemudian, orang yang menggunakan aplikasi atau layanan Anda dapat memberikan izin. Setelah aplikasi Anda mendapatkan izin, perangkat menerima token akses yang digunakan aplikasi untuk membuat permintaan API Graf guna mengidentifikasi orang terkait dan mendapatkan informasi untuk mempersonalisasi pengalamannya dengan perangkat.

Jika Anda membuat aplikasi TV di Apple TV, atau Android TV, atau Fire TV, Anda harus menggunakan SDK Facebook untuk tvOS atau SDK Facebook untuk Android.

Panduan ini menjelaskan integrasi manual Login Perangkat tanpa menggunakan SDK di atas.

Pengalaman Pengguna

Pedoman berikut menjelaskan cara merancang pengalaman login yang jelas, aman, dan konsisten di perangkat dan layanan.

1. Ajakan-Bertindak

Pertama, tentukan kapan Anda ingin meminta orang untuk login atau terhubung dengan Facebook dalam pengalaman pengguna Anda. Untuk beberapa perangkat Anda mungkin ingin melakukannya secepatnya sementara untuk perangkat lainnya mungkin agak nanti.

Untuk menjamin pengalaman pengguna yang paling mudah digunakan, konsisten, dan andal, rancanglah tombol agar terlihat semirip mungkin dengan tombol Facebook Login resmi.

Dari perspektif desain visual, ini artinya Anda harus

  1. Melabeli tombol dengan “Login dengan Facebook” atau “Terhubung ke Facebook”.
  2. Menggunakan warna putih dan warna biru logo Facebook yang resmi: #1877F2.
  3. Jika perangkat Anda mendukung tampilan grafis, Anda juga dapat menggabungkan logo resmi “f”. Menurut panduan merek Facebook, logo harus selalu putih atau biru Facebook (#1877F2).

Jika perlu, jelaskan manfaat login. Misalnya, “cari tahu apa yang ditonton teman Anda” atau "lihat foto dari Album Facebook Anda”.

2. Menampilkan Kode

Saat seseorang mengklik ajakan-bertindak, perangkat Anda membuat panggilan ke API Facebook yang mengembalikan kode.

Di antarmuka Anda, beri tahu orang-orang bahwa mereka harus mengunjungi situs web dan memasukkan kode dengan pesan berikut, “Selanjutnya, kunjungi facebook.com/device (http://facebook.com/device) di desktop atau smartphone Anda dan masukkan kode ini”. Tampilkan kode lengkap yang Anda terima dari API Login Perangkat Facebook. Kode ini berisi 6 hingga 12 karakter.

Anda dapat menyertakan tombol Close atau Cancel agar orang-orang dapat membatalkan alur login perangkat. Ini akan mengembalikan mereka ke layar login awal.

Saat kode muncul di layar, perangkat Anda memeriksa API Login Perangkat untuk melihat apakah seseorang telah mengotorisasi aplikasi Anda. Setelah beberapa menit, jika mereka belum memasukkan kode, API Login Perangkat memunculkan kesalahan code_expired. Saat perangkat Anda menerima kesalahan ini, Anda harus membatalkan alur login dan antarmuka harus menampilkan ajakan-bertindak.

Kode QR juga dapat dibuat dengan kode pengguna yang tersemat dalam URL. Caranya adalah dengan menambahkan parameter user_code ke URL:

https://www.facebook.com/device?user_code=<USER_CODE>

3. Otorisasi

Inilah alur yang dilihat orang-orang saat mereka membuka facebook.com/device di browser desktop atau seluler. Pertama, mereka melihat kolom teks untuk memasukkan kode:

Setelah memasukkan kode dan mengklik Continue, mereka dapat memilih izin yang ingin diberikan:

Agar mengetahui bahwa proses login-nya berhasil, orang akan melihat pesan konfirmasi:

4. Mengonfirmasi Keberhasilan Login

Di antarmuka perangkat Anda, pesan konfirmasi juga harus ditampilkan. Idealnya, pesan ini menunjukkan nama orang itu dan, jika memungkinkan, foto profil Facebook-nya.

Tampilkan konfirmasi ini di perangkat Anda hingga orang itu mengklik tombol Continue. Seseorang mungkin harus memasukkan kode ke komputer atau lokasi lain, jadi dia butuh waktu untuk kembali ke perangkat Anda dan melihat konfirmasi sebelum melanjutkan.

Setelah orang itu mengklik Continue, perangkat Anda pun dapat memberikan pengalaman hebat yang dipersonalisasi.

5. Logout atau Membatalkan Hubungan

Orang-orang harus dapat logout dari perangkat Anda dan perangkat Anda tidak boleh menyimpan hubungannya dengan Facebook. Untuk melakukan ini, sediakan opsi Log out from Facebook atau Disconnect from Facebook di menu perangkat Anda.

Saat seseorang memiliki opsi ini, perangkat Anda harus menghapus token akses yang disimpan dari memorinya. Jika menyimpan token akses di database atau penyimpanan awan, Anda juga harus menghapusnya di sana. Anda tidak perlu melakukan panggilan API untuk membatalkan validasi token akses.

Setelah seseorang logout, perangkat Anda harus menampilkan ajakan-bertindak awal di Langkah 1.

Menerapkan Login untuk Perangkat

Facebook Login untuk Perangkat adalah untuk perangkat yang langsung melakukan panggilan HTTP melalui internet. Berikut ini adalah panggilan API dan tanggapan yang dapat dilakukan perangkat Anda.

1. Mengaktifkan Login untuk Perangkat

Muat dasbor aplikasi Anda dan ubah Produk > Facebook login > Pengaturan > Login dari Perangkat menjadi 'Ya'.

2. Membuat Kode

Saat seseorang mengklik ajakan-bertindak Connect to Facebook atau Log in with Facebook, perangkat Anda harus membuat HTTP POST ke:

POST https://graph.facebook.com/v2.6/device/login
       access_token=<YOUR_APP_ID|CLIENT_TOKEN>
       scope=<COMMA_SEPARATED_PERMISSION_NAMES> // e.g. public_profile,user_likes
       redirect_uri=<VALID_OAUTH_REDIRECT_URL>

Parameter scope bersifat opsional dan harus berisi daftar yang dipisahkan koma berisi Izin Login yang disetujui untuk digunakan di Tinjauan Login.

CLIENT_TOKEN berada di Pengaturan Aplikasi Anda -> Lanjutan, dan harus dipadukan dengan ID aplikasi Anda (dipisahkan dengan tanda pipa, |) untuk membentuk access_token yang lengkap.

redirect_uri merupakan parameter opsional. Saat Anda menyediakan URL, orang itu akan dialihkan ke URL tersebut setelah berhasil menyelesaikan proses login. Ini memungkinkan Anda membuat orang itu login ke dalam situs web aplikasi Anda untuk melakukan pengelolaan akun lebih lanjut. URL tersebut haruslah URL pengalihan OAuth yang valid sebagaimana dikonfigurasi di Pengaturan Aplikasi -> Lanjutan. Tanggapannya dalam bentuk berikut:

{
  "code": "92a2b2e351f2b0b3503b2de251132f47",
  "user_code": "A1NWZ9",
  "verification_uri": "https://www.facebook.com/device",
  "expires_in": 420,
  "interval": 5
}

Tanggapan ini berarti:

  1. Tampilkan string “A1NWZ9” di perangkat Anda
  2. Minta orang tersebut membuka “facebook.com/device” dan memasukkan kode ini
  3. Kode akan kedaluwarsa dalam 420 detik. Anda harus membatalkan alur login setelah waktu itu berakhir jika Anda tidak menerima token akses
  4. Perangkat Anda harus memeriksa API Login Perangkat setiap 5 detik untuk melihat apakah otorisasi sudah berhasil.

3. Menampilkan Kode

Perangkat Anda akan menampilkan user_code dan meminta orang mengunjungi verification_uri seperti facebook.com/device di PC atau smartphone-nya. Lihat Pengalaman Pengguna.

4. Memeriksa Otorisasi

Perangkat Anda harus memeriksa API Login Perangkat untuk melihat apakah orang itu berhasil mengotorisasi aplikasi Anda. Anda harus melakukan ini pada interval dalam tanggapan untuk panggilan Anda di Langkah 1, yaitu tiap 5 detik. Perangkat Anda akan memeriksa:

POST https://graph.facebook.com/v2.6/device/login_status
       access_token=<YOUR_APP_ID|CLIENT_TOKEN>
       code=<LONG_CODE_FROM_STEP_1> // e.g. "92a2b2e351f2b0b3503b2de251132f47"

Tanggapan terhadap panggilan API ini bergantung pada posisi seseorang dalam alur otorisasi. Anda akan menerima token akses atau objek kesalahan beserta subkode tertentu untuk parse:

Subkode kesalahan Contoh Tanggapan Artinya

N/A

{"access_token": "ABCD...", "expires_in" : 5183996 }

Pengguna berhasil mengotorisasi perangkat. Sekarang perangkat dapat menggunakan nilai access_token untuk membuat panggilan API yang terotorisasi.

1349174

{"error":{"message":"This request requires the user to take a pending action","code":31,"error_subcode":1349174,"error_user_title":"Device Login Authorization Pending","error_user_msg":"User has not yet authorized your application. Continue polling."}}

Pengguna belum mengotorisasi aplikasi Anda. Teruslah melakukan pemeriksaan dengan interval yang ditetapkan dalam tanggapan di Langkah 1.

1349172

{"error":{"message":"User request limit reached","code":17,"error_subcode":1349172,"error_user_title":"OAuth Device Excessive Polling","error_user_msg":"Your device is polling too frequently. Space your requests with a minium interval of 5 seconds."}}

Perangkat Anda terlalu sering memeriksa. Lambatkan pemeriksaan sesuai dengan interval yang ditetapkan di panggilan API pertama.

1349152

{"error":{"message":"The session has expired""code":463,"error_subcode":1349152, "error_user_title":"Activation Code Expired","error_user_msg":"The code you entered has expired. Please go back to your device for a new code and try again."}}

Kode perangkat sudah kedaluwarsa. Batalkan alur login perangkat dan bawa pengguna kembali ke layar awal.

5. Mengonfirmasi Keberhasilan Login

Saat Anda menerima token akses, berarti orang itu berhasil mengotorisasi permohonan Anda. Anda harus mempertahankan token akses ini di perangkat.

Agar orang mengetahui bahwa proses login-nya berhasil, perangkat Anda harus menampilkan namanya dan jika tersedia, foto profil hingga orang itu mengklik Continue. Untuk mendapat nama dan foto profil orang itu, perangkat Anda harus melakukan panggilan API Graf standar:

GET https://graph.facebook.com/v2.3/me?
      fields=name,picture&amp;
      access_token=<USER_ACCESS_TOKEN>

Anda mendapat tanggapan dalam bentuk:

{
  "name": "John Doe", 
  "picture": {
    "data": {
      "is_silhouette": false, 
      "url": "https://fbcdn.akamaihd.net/hmac...ile.jpg"
    }
  }, 
  "id": "2023462875238472"
}

Tampilkan nama dan foto profil orang itu hingga dia mengklik Continue di perangkat Anda.

6. Menyimpan Token Akses

Perangkat Anda harus mempertahankan token akses untuk membuat permintaan lain ke API Graf.

Token akses login perangkat berlaku hingga 60 hari tetapi dapat dibatalkan dalam beberapa kemungkinan. Misalnya, saat seseorang mengubah kata sandi Facebooknya, token aksesnya menjadi tidak valid.

Jika tokennya tidak valid, perangkat Anda harus menghapus token dari memorinya. Orang yang menggunakan perangkat Anda harus menjalankan alur login perangkat lagi dari Langkah 1 untuk mengambil token valid yang baru.

Pemecahan Masalah

Dapatkah saya membuat permintaan alur perangkat melalui HTTP?
OAuth 2 memerlukan TLS/HTTPS.

Dapatkah saya membuat permintaan alur perangkat dengan metode GET?
Semua permintaan alur perangkat harus berupa permintaan POST.

Bagaimana cara memuat ulang token akses login perangkat saya?
Token akses login perangkat berlaku hingga 60 hari.

Jika tokennya tidak valid, perangkat Anda harus menghapus token dari memorinya. Orang yang menggunakan perangkat Anda harus melakukan kembali alur Login Perangkat lagi yang dijelaskan di Langkah 1 untuk mengambil token valid yang baru.

Untuk mempelajari selengkapnya tentang memuat ulang token, baca Token Akses.

Saya menemui kesalahan Invalid API method saat membuat permintaan POST, apa yang salah?
Jika Anda membuat permintaan POST dan mendapat kesalahan seperti ini:

{"error":{"message":"Invalid API method","type":"OAuthException","code":3}}

Anda mungkin harus mengaktifkan Login dari Perangkat di aplikasi Anda.

Muat dasbor aplikasi Anda dan tetapkan Produk > Facebook login > Pengaturan > Login dari Perangkat menjadi 'Ya'.

Token akses login perangkat saya tidak valid. Apa yang harus saya lakukan?
Jika token akses Anda tidak valid, perangkat Anda harus menghapus token dari memorinya dan mendapatkan token yang baru. Orang yang menggunakan perangkat Anda harus melakukan kembali alur Login Perangkat lagi yang dijelaskan di Langkah 1 untuk mengambil token valid yang baru.