Di mana client token Facebook harus diletakkan dalam aplikasi Flutter

Terakhir diperbarui 7 Agustus 2026

Apa itu client token

Client token mengidentifikasi aplikasi Anda ketika Facebook SDK memanggil endpoint tingkat aplikasi milik Meta. Kata Meta sendiri: client token "identify your app when calling app-level APIs from native or desktop apps", dan ia tidak bisa dipakai sendiri, karena "you must combine them with your App ID by appending the token to the end of the App ID, separated by a pipe symbol". SDK yang melakukan penggabungan itu untuk Anda. Yang tidak bisa dilakukannya adalah menebak salah satu dari kedua nilai itu.

Ini bukan app id Anda. Dua nilai berbeda, dua kunci konfigurasi berbeda, dan SDK membutuhkan keduanya. Kalau Anda menempelkan app id ke kunci client token, aplikasi tidak punya client token yang sah, dan kegagalannya sama persis dengan kalau kunci itu tidak diisi: tanpa suara.

Anda tidak perlu menyembunyikannya. Meta menyatakannya terang-terangan: "Because client tokens are embedded in apps, they are not secret." Nilai itu memang dirancang untuk ikut terbawa di dalam biner aplikasi Anda, jadi ia boleh berada di repositori bersama sisa konfigurasi platform Anda.

Di mana mengambilnya

Dari App Dashboard, untuk aplikasi yang Anda ingin event-nya masuk ke sana. Dokumentasi client token milik Meta memberi jalurnya: di Dashboard, buka Settings > Advanced > Security > Client token.

Periksa aplikasi mana yang sedang Anda buka sebelum menyalin. Client token dari aplikasi lain di akun bisnis yang sama tampak sangat masuk akal, tertempel tanpa keluhan, dan tidak akan bekerja.

Android butuh dua file, bukan satu

Di sinilah waktu Anda habis. Token harus berada di sebuah string resource, dan manifest harus menunjuk ke resource itu. Yang satu tanpa yang lain tidak berpengaruh apa pun.

String resource-nya

Di android/app/src/main/res/values/strings.xml, atau file yang bersesuaian untuk build flavor debug atau release:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="facebook_app_id">[APP_ID]</string>
  <string name="facebook_client_token">[CLIENT_TOKEN]</string>
  <string name="fb_login_protocol_scheme">fb[APP_ID]</string>
  <string name="app_name">[APP_NAME]</string>
</resources>

Rujukan di manifest

String resource saja tidak berpengaruh apa pun. Yang dibaca SDK adalah entri meta-data di AndroidManifest.xml, dan entri itulah yang merujuk string Anda. Kalau entri itu tidak ada, nilainya hanya duduk di resource Anda tanpa ada yang mencarinya.

Keduanya diletakkan langsung di bawah <application>:

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>

Kalau Anda sudah menambahkan string-nya lalu berhenti di sana, inilah bug Anda, dan tidak ada apa pun di build atau di log yang akan menunjukkannya.

Jebakan build flavor

Kalau aplikasi Anda memakai build flavor, periksa strings.xml yang mana yang Anda sunting. Direktori resource sebuah flavor menimpa direktori utama, jadi client token yang diletakkan di file flavor yang salah memang tidak ada di build yang Anda jalankan.

Yang ini bersembunyi dengan baik. File yang terbuka di layar Anda sudah benar. Nilainya ada di situ, ejaannya tepat, di file yang memang ada. Ia hanya tidak termasuk dalam kumpulan resource yang dipakai untuk menyusun build yang Anda pasang.

Bangun flavor yang Anda uji, lalu periksa merged manifest dan merged resources yang dihasilkan build itu, bukan file sumber yang Anda sunting. Itulah pemeriksaan yang menjawab pertanyaannya.

Baik hal ini maupun entri di manifest tidak ada dalam dokumentasi client token milik Meta, dan keduanya bukan kritik terhadapnya: halaman itu menjelaskan SDK secara umum, untuk setiap platform yang memuatnya. Kedua jebakan itu hidup di proyek Android yang dihasilkan oleh tooling Flutter untuk Anda, dan justru bagian itulah yang tidak didokumentasikan siapa pun.

iOS: Info.plist

Satu file, dan tidak ada lapisan perantara yang bisa salah. Semuanya masuk ke Info.plist:

<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>fb[APP_ID]</string>
  </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>[APP_ID]</string>
<key>FacebookClientToken</key>
<string>[CLIENT_TOKEN]</string>
<key>FacebookDisplayName</key>
<string>[APP_NAME]</string>

Dua dari kunci itu yang relevan untuk halaman ini: FacebookAppID dan FacebookClientToken. Sisa bloknya adalah konfigurasi Facebook standar, ditampilkan di sini supaya Anda bisa membandingkannya dengan yang sudah ada di proyek Anda.

Di iOS tidak ada lapisan perantara seperti di manifest. Nilainya duduk langsung di kunci yang dibaca SDK.

Ketika token-nya salah

Tidak ada yang memberi tahu Anda. Aplikasi berhasil dibangun. SDK terinisialisasi. logEvent kembali tanpa error. Events Manager tetap kosong.

Client token yang hilang atau salah adalah salah satu penyebab paling umum event tidak pernah sampai, dan ia tidak memberi sinyal apa pun di tempat pemanggilan. Bandingkan nilainya karakter per karakter dengan App Dashboard sebelum Anda mencari ke tempat lain.

Kalau token-nya sudah benar dan event tetap tidak sampai, halaman berikutnya menelusuri sisanya secara berurutan, konfigurasi lalu transport lalu atribusi, supaya Anda berhenti menebak sedang berada di lapisan mana: Facebook App Events tidak muncul di Events Manager.

Periksa pengaturan Anda

  • Client token di aplikasi Anda sama dengan Settings > Advanced > Security > Client token untuk aplikasi yang sama di App Dashboard
  • Android: facebook_client_token diatur di strings.xml milik flavor yang benar-benar Anda bangun
  • Android: entri meta-data com.facebook.sdk.ClientToken ada di bawah elemen application di AndroidManifest.xml
  • Android: Anda memeriksa merged manifest dan merged resources dari build, bukan file sumber yang Anda sunting
  • iOS: FacebookClientToken diatur di Info.plist
  • App id dan client token masing-masing berada di kuncinya sendiri, dan tidak ada nilai yang tertempel ke kunci yang lain

Dokumentasi referensi Meta

Referensi API plugin

Masih terhambat?

Ini defek pada plugin

Jika plugin melakukan sesuatu yang tidak dilakukan Facebook SDK native, itu bug kami. Buka issue dan kami perbaiki. Gratis, selalu, tanpa syarat.

Buka issue di GitHub

Ini pertanyaan soal penggunaan

Pertanyaan soal konfigurasi dan integrasi paling baik diajukan di tempat yang bisa ditemukan developer lain nanti.

Tanya di StackOverflow

Angka Anda salah dan ada uang yang bergerak

Jika kampanye instalasi Meta terus mengeluarkan biaya dan atribusinya tidak sesuai, itu masalah yang berbeda dari build yang rusak. Satu jam, 300 USD, dikreditkan ke biaya audit jika Anda melanjutkan.

Lihat panggilan diagnostik dan audit

Panduan terkait

Google Cloud Partner

Ceritakan Tentang Proyek Anda