Token Akses untuk Teknologi Meta

Token akses adalah string bertipe opaque yang mengidentifikasi pengguna, aplikasi, atau halaman, dan dapat digunakan oleh aplikasi untuk melakukan panggilan Graph API. Token tersebut menyertakan informasi tentang waktu berakhirnya token dan aplikasi yang membuat token. Karena pemeriksaan privasi, sebagian besar panggilan API di aplikasi Meta harus menyertakan token akses. Ada berbagai jenis token akses untuk mendukung kasus penggunaan yang berbeda dan sejumlah metode untuk memperoleh token akses.

Jenis Token AksesDeskripsi

Token Akses Aplikasi

Token akses aplikasi digunakan untuk membaca dan mengubah pengaturan aplikasi dan dibuat menggunakan rahasia aplikasi Meta, kemudian digunakan selama panggilan yang mengubah pengaturan di seluruh aplikasi. Anda mendapat token akses aplikasi melalui panggilan server-ke-server.

Token Klien

Token klien digunakan untuk mengakses API level aplikasi yang dapat disematkan ke aplikasi native atau aplikasi desktop untuk mengidentifikasi aplikasi Anda. Token klien tidak dimaksudkan sebagai pengidentifikasi rahasia karena tersemat di aplikasi. Token klien Anda ditemukan di dasbor aplikasi Meta Anda.

Token Akses Halaman

Token akses akses Halaman digunakan untuk membaca, menulis, dan mengubah data milik Halaman Facebook. Untuk mendapatkan token akses Halaman, Anda harus memulai dengan mendapatkan token akses pengguna, kemudian menggunakan token tersebut untuk mendapatkan token akses Halaman melalui Graph API.

Token Akses Pengguna Sistem

Token akses Pengguna Sistem (SUAT) digunakan jika aplikasi Anda melakukan tindakan terprogram, otomatis pada objek Iklan atau Halaman klien bisnis Anda tanpa harus bergantung pada input dari pengguna aplikasi, atau memerlukan autentikasi ulang di masa mendatang.

Token Akses Pengguna

Token akses Pengguna harus digunakan jika aplikasi Anda mengambil tindakan secara realtime, berdasarkan input dari pengguna. Jenis token akses ini diperlukan saat aplikasi memanggil API untuk membaca, mengubah, atau menulis data Facebook orang tertentu atas nama orang tersebut. Token akses Pengguna umumnya diperoleh melalui dialog login dan mewajibkan seseorang mengizinkan aplikasi Anda untuk mendapatkannya.

Token Akses Pengguna

Meskipun setiap platform menghasilkan token akses melalui API yang berbeda, semua platform mengikuti strategi dasar untuk mendapatkan token pengguna:

Token Berdurasi Singkat dan Token Berdurasi Lama

Token akses pengguna hadir dalam dua bentuk: token berdurasi singkat dan token berdurasi lama. Token berdurasi singkat biasanya memiliki masa berlaku satu atau dua jam, sementara token berdurasi lama biasanya memiliki masa berlaku sekitar 60 hari. Anda tidak boleh terlalu menggantungkan pada masa pakai ini akan tetap sama - masa pakai dapat berubah tanpa peringatan atau berakhir lebih awal. Lihat selengkapnya di bagian menangani kesalahan.

Token akses yang dibuat melalui login web adalah token berdurasi singkat tetapi Anda dapat mengubahnya menjadi token berdurasi lama dengan melakukan panggilan API sisi server beserta kunci rahasia aplikasi Anda.

Aplikasi seluler yang menggunakan SDK iOS dan Android Facebook mendapat token jangka panjang secara default.

Aplikasi dengan akses Standar ke Marketing API Facebook saat menggunakan token berdurasi lama akan menerima token berdurasi lama yang tidak memiliki waktu kedaluwarsa. Token-token ini masih dapat mengalami invalidasi karena penyebab lain, tetapi tidak akan kedaluwarsa hanya karena waktu. Begitu pula bagi token akses untuk Pengguna Sistem Pengelola Bisnis.

Token bersifat Portabel

Salah satu aspek penting untuk memahami token akses adalah bahwa token-token ini bersifat portabel. Namun, Apple tidak memberi izin untuk memindahkan token ke server. Jika tidak, setelah Anda memiliki token akses, Anda dapat menggunakannya untuk melakukan panggilan dari klien seluler, browser web, atau dari server Anda ke server Facebook. Jika sebuah token diperoleh di sebuah klien, Anda dapat mengirimkan token tersebut ke server Anda dan menggunakannya di panggilan server-ke-server. Jika sebuah token diperoleh melalui panggilan server, Anda juga dapat mengirimkan token tersebut ke klien, lalu melakukan panggilan dari klien tersebut.

Pemindahan token antara klien dan server harus dilakukan secara aman melalui HTTPS guna memastikan keamanan akun orang. Baca selengkapnya tentang implikasi pemindahan token antara klien dan server Anda.

Platform yang berbeda memiliki metode yang berbeda untuk memulai proses ini dan menyertakan fungsi untuk mengelola token akses atas nama developer dan orang yang memberikan izin:

Android

Facebook SDK untuk Android secara otomatis mengelola token akses pengguna melalui kelas com.facebook.AccessToken. Anda dapat mempelajari selengkapnya tentang mendapatkan token akses pengguna dengan menerapkan Facebook Login untuk Android. Anda dapat mengambil token akses pengguna dengan memeriksa Session.getCurrentAccessToken.

Contoh Kode

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    accessToken = AccessToken.getCurrentAccessToken();
}

iOS

Facebook SDK untuk iOS secara otomatis mengelola token akses pengguna melalui kelas FBSDKAccessToken. Anda dapat mempelajari selengkapnya tentang mendapatkan token akses pengguna dengan menerapkan Facebook Login untuk iOS. Anda dapat mengambil token akses dengan memeriksa FBSDKAccessToken.currentAccessToken.

Contoh Kode

- (void)viewDidLoad
{
  [super viewDidLoad];
  NSString *accessToken = [FBSDKAccessToken currentAccessToken];
}

JavaScript

Facebook SDK untuk JavaScript mendapatkan dan mempertahankan token akses pengguna secara otomatis di cookie browser. Anda dapat mengambil token akses pengguna dengan melakukan panggilan ke FB.getAuthResponse yang akan menyertakan properti accessToken dalam tanggapan.

Contoh Kode

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    var accessToken = response.authResponse.accessToken;
  } 
} );

Silakan buka dokumentasi SDK Web Facebook untuk mengetahui contoh kode yang lengkap.

Web (tanpa JavaScript)

Saat mengembangkan aplikasi web tanpa Facebook SDK untuk JavaScript, Anda harus membuat token akses selama langkah-langkah yang diuraikan di dokumen tersebut.

Token Akses Aplikasi

Token akses aplikasi digunakan untuk membuat permintaan ke API Facebook atas nama aplikasi, bukan atas nama pengguna. Ini dapat digunakan untuk mengubah parameter aplikasi Anda, membuat dan mengelola pengguna uji, atau membaca insight aplikasi Anda.

Batasan

Beberapa data pengguna yang biasanya bisa dilihat oleh aplikasi pembuat permintaan dengan token akses pengguna tidak selalu bisa dilihat dengan token akses aplikasi. Jika Anda sedang membaca data pengguna dan menggunakannya di aplikasi Anda, maka Anda harus menggunakan token akses pengguna, bukan token akses aplikasi.

Token akses aplikasi dianggap tidak aman jika aplikasi Anda diatur ke Native/Desktop di pengaturan Lanjutan Dasbor Aplikasi Anda, dengan demikian tidak akan dapat berfungsi dengan panggilan API. Hal ini karena kami berasumsi bahwa aplikasi native atau desktop akan menyematkan kunci rahasia aplikasi di suatu tempat (dan oleh karenanya token akses aplikasi yang dihasilkan menggunakan rahasia tersebut tidak aman).

Membuat Token Akses Aplikasi

Untuk membuat token akses aplikasi, Anda membutuhkan:

Contoh Kode

curl -X GET "https://graph.facebook.com/oauth/access_token
  ?client_id={your-app-id}
  &client_secret={your-app-secret}
  &grant_type=client_credentials"

Panggilan ini akan menghasilkan token akses aplikasi yang dapat digunakan untuk menggantikan token akses pengguna guna melakukan panggilan API yang dicatat di atas. Sekali lagi, demi keamanan, token akses aplikasi tidak pernah di-hardcoding ke dalam kode sisi klien, dengan melakukan tersebut akan memberi setiap orang yang memuat halaman web Anda atau mendekompilasi aplikasi Anda akses penuh aplikasi Anda ke kunci rahasia aplikasi. Ini berarti bahwa biasanya Anda akan menggunakan token akses aplikasi hanya di panggilan server ke server.

Perhatikan bahwa karena permintaan ini menggunakan kode rahasia aplikasi Anda, maka tidak boleh dilakukan dalam kode sisi klien atau dalam file biner aplikasi yang dapat didekompilasi. Penting: Jangan pernah membagikan rahasia aplikasi Anda kepada siapa pun. Oleh karena itu, panggilan API ini hanya boleh dilakukan menggunakan kode sisi server.

Ada metode lain untuk melakukan panggilan ke Graph API yang tidak memerlukan penggunaan token akses aplikasi yang sudah dibuat. Anda dapat memasukkan ID aplikasi dan rahasia aplikasi Anda sebagai parameter access_token saat melakukan panggilan:

curl -i -X GET "https://graph.facebook.com/{api-endpoint}&access_token={your-app_id}|{your-app_secret}"   

Pilihan untuk menggunakan token akses yang dibuat atau metode ini bergantung pada lokasi Anda menyembunyikan rahasia aplikasi Anda.

Token Akses Halaman

Token akses Halaman digunakan di panggilan Graph API untuk mengelola Halaman Facebook. Untuk membuat token akses halaman, admin halaman harus memberikan izin Halaman atau izin yang diperlukan ke aplikasi. Setelah diberikan, Anda dapat mengambil token akses Halaman menggunakan token akses pengguna dengan izin yang diperlukan.

Contoh Kode

curl -i -X GET "https://graph.facebook.com/{your-user-id}/accounts?access_token={user-access-token}" 

Ini memunculkan daftar halaman tempat Anda memiliki peran dan informasi tentang tiap Halaman seperti kategori Halaman, izin spesifik yang Anda miliki di tiap Halaman, dan token akses Halaman.

{
  "data": [
    {
      "access_token": "EAACEdE...",
      "category": "Brand",
      "category_list": [
        {
          "id": "1605186416478696",
          "name": "Brand"
        }
      ],
      "name": "Ash Cat Page",
      "id": "1353269864728879",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    },
    {
      "access_token": "EAACEdE...",
      "category": "Pet Groomer",
      "category_list": [
        {
          "id": "163003840417682",
          "name": "Pet Groomer"
        },
        {
          "id": "2632",
          "name": "Pet"
        }
      ],
      "name": "Unofficial: Tigger the Cat",
      "id": "1755847768034402",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT"
      ]
    }
  ]
}

Dengan token akses halaman, Anda dapat melakukan panggilan API atas nama Halaman. Sebagai contoh, Anda dapat memposting pembaruan status ke sebuah Halaman (alih-alih di linimasa pengguna) atau membaca data Insight Halaman.

Token akses Halaman bersifat unik untuk setiap Halaman, pengurus, dan aplikasi.

Token Akses Klien

Mulai SDK v13.0 atau iOS dan Android, yang akan dirilis pada awal 2022, a Token Klien wajib untuk semua panggilan ke Graph API.

Seperti token Aplikasi, token Klien membuat permintaan Graph API atas nama aplikasi dan bukan pengguna.

Tidak seperti token lainnya, Token Akses Klien tidak dapat digunakan dalam permintaan sendirian, harus digabungkan dengan ID Aplikasi Anda. Untuk melakukannya, tambahkan token Anda ke akhir ID aplikasi, dipisahkan dengan simbol pipa (|):

{app-id}|{client-token}

Contoh:

access_token=1234|5678

Untuk mendapatkan Token Akses Klien bagi aplikasi, lakukan hal berikut:

  1. Masuk ke akun developer Anda.
  2. Di halaman Aplikasi, pilih aplikasi untuk membuka dasbor aplikasi itu.
  3. Di Dasbor, buka Pengaturan > Lanjutan > Keamanan > Token klien.

Panjang Token Akses

Anggap panjang semua jenis token akses akan berubah seiring waktu karena Facebook melakukan perubahan pada yang disimpan di dalamnya dan bagaimana token akses ini dienkode. Anda dapat menganggap token akses ini akan berkembang dan menyusut seiring waktu. Gunakan jenis data panjang variabel tanpa ukuran maksimum tertentu untuk menyimpan token akses.

Pelajari Selengkapnya