Token Akses: Debugging dan Penanganan Kesalahan

Mendapatkan Info tentang Token dan Debugging

Saat menggunakan token akses, Anda mungkin perlu memeriksa informasi apa yang terkait dengannya, seperti pengguna atau kedaluwarsanya. Untuk mendapatkan informasi ini, Anda dapat menggunakan alat debug kami, atau Anda dapat menggunakan endpoint API.

Untuk menggunakan API ini, Anda dapat mengeluarkan permintaan API Graf:

curl -i -X GET "https://graph.facebook.com/debug_token?
  input_token={input-token}&
  access_token={valid-access-token}

Ganti {input-token} dengan token akses yang ingin Anda ketahui informasinya dan {access-token} dengan token akses yang valid. Token harus berasal dari aplikasi yang sama.

Tanggapan panggilan API adalah array JSON yang terlihat seperti ini:

{ "data":{ "app_id":"{app-id}", "type":"USER", "application":"{app-name}", "data_access_expires_at":1576687825, "expires_at":1570820400, "is_valid":true, "scopes":[ "pages_show_list", "public_profile" ], "granular_scopes":[ { "scope":"pages_show_list", "target_ids":[ "{page-1-app-can-access-id}", "{page-2-app-can-access-id}" ] } ], "user_id":"10215241773831025" } } 

Untuk token akses yang lebih panjang masa berlakunya, kolom issued_at juga dikembalikan.

Menangani Kesalahan

Facebook tidak akan memberi tahu Anda bahwa token akses menjadi tidak valid. Kecuali jika Anda telah mengirimkan waktu expiry ke aplikasi Anda bersama token akses, aplikasi Anda hanya akan mengetahui bahwa token yang diberikan menjadi tidak valid ketika Anda mencoba membuat permintaan ke API.

Karena acara terkait keamanan, token akses mungkin tidak valid sebelum waktu kedaluwarsa yang diharapkan.

Dalam sebagian besar aplikasi, cara terbaik menangani token kedaluwarsa adalah mengambil gambar pesan kesalahan yang dimunculkan API. Dalam setiap aksus, API akan mengembalikan pesan kesalahan, kode, dan subkode di badan JSON yang menjelaskan sifat kesalahan. Untuk informasi selengkapnya tentang kode dan subkode, lihat error dokumentasi referensi kode.

Token akses yang kedaluwarsa atau tidak valid

Tanggapan Contoh Token yang Kedaluwarsa

{
  "error": {
    "message": "Error validating access token: Session has expired on Wednesday, 14-Feb-18 18:00:00 PST. The current time is Thursday, 15-Feb-18 13:46:35 PST.",
    "type": "OAuthException",
    "code": 190,
    "error_subcode": 463,
    "fbtrace_id": "H2il2t5bn4e"
  }
}

Tanggapan Contoh Token yang Tidak Valid

Tanggapan dikirim ketika seseorang keluar dari aplikasi Anda atau mengubah kata sandi mereka.

{
  "error": {
    "message": "Error validating access token: The session is invalid 
                because the user logged out.", 
    "type": "OAuthException", 
    "code": 190,
    "error_subcode": 460,
    "fbtrace_id": "H2il2t5bn4e"
  }
}

Orang itu harus masuk lagi untuk mendapatkan token akses yang valid jadi Anda dapat melakukan panggilan API atas nama mereka. Alur masuk yang digunakan aplikasi Anda oleh orang baru harus menentukan metode mana yang Anda adaptasi.

Tanggapan Contoh Kesalahan Otorisasi Aplikasi

Ketika seseorang mencabut otorisasi atau tidak pernah mengotorisasi aplikasi Anda, tanggapan kesalahan akan sama seperti seseorang baru mengenal aplikasi Anda.

Tanggapan Contoh Token yang Dibatalkan Izinnya

{
  "error": {
    "message": "Error validating access token: User {user-id} has 
                not authorized application {your-app-id}.", 
    "type": "OAuthException", 
    "code": 190,
    "error_subcode": 458,
    "fbtrace_id": "H2il2t5bn4e"
  }
}
}

Menangani Kesalahan Token dalam Aplikasi iOS

Kesalahan API di iOS SDK biasanya muncul melalui instance NSError yang diteruskan ke callback. Lihat dokumentasi kesalahan SDK iOS untuk detail selengkapnya.

Menangani Kesalahan Token dalam Aplikasi Android

Kesalahan API di Android SDK biasanya muncul melalui objek Response yang diteruskan ke callback Requests. Secara khusus, Anda dapat memanggil response.getError() untuk memulihkan instance FacebookRequestError.

Pelajari Selengkapnya

Anda dapat membaca kesalahan lainnya di referensi Kesalahan API tetapi ketiga kesalahan ini adalah paling umum ketika menangani token akses.