Memulai Facebook SDK untuk Android

Dokumentasi ini menjelaskan cara mulai mengintegrasikan aplikasi Android Anda dengan Facebook dengan menggunakan Facebook SDK untuk Android. Versi Facebook SDK untuk Android saat ini adalah versi 12.0.0 dan memerlukan Android API 15. Untuk informasi selengkapnya tentang versi dan fitur, lihat Facebook SDK untuk Android.

Saat Anda menggunakan SDK Facebook, beberapa peristiwa di dalam aplikasi Anda secara otomatis akan dicatat dalam log dan dikumpulkan untuk Facebook Analytics, kecuali jika Anda menonaktifkan pencatatan peristiwa otomatis. Untuk informasi detail mengenai jenis informasi yang dikumpulkan dan cara menonaktifkan pencatatan log peristiwa otomatis, buka Pencatatan Log Peristiwa Aplikasi Otomatis.

Anda dapat menyiapkan aplikasi untuk menggunakan Facebook SDK untuk Android dengan cara berikut:

  • Dengan Mulai Cepat.
  • Dengan menyiapkan proyek bersama Facebook SDK untuk Android.

Mulai Cepat

Untuk mendapatkan ID Aplikasi Facebook, konfigurasikan pengaturan aplikasi Anda, dan impor Facebook SDK untuk Android, klik tombol di bawah ini dan ikuti petunjuknya.

Mulai Cepat untuk Android

Sebelum Memulai

Anda akan memerlukan:

Memahami Izin ID Iklan

Mulai versi 13.0.0, setiap aplikasi yang Anda buat dengan menggunakan Facebook SDK untuk Android secara otomatis menambahkan Izin ID Iklan ke aplikasi Anda. Untuk informasi selengkapnya, lihat ID Iklan - Bantuan Konsol Putar.

Dalam beberapa kasus, Anda mungkin ingin menolak menyertakan izin ID Iklan di aplikasi Anda. Contoh: jika pelanggan untuk aplikasi Anda adalah anak-anak dan keluarga, Izin ID Iklan mungkin tidak relevan. Untuk mengecualikan Izin ID Iklan dari aplikasi Anda, ikuti petunjuk di dokumentasi ini.

Pengaturan Android Studio

Buat Proyek Anda

Untuk menggunakan Facebook SDK dalam proyek Android Studio, tambahkan SDK sebagai dependensi build dan impor SDK.

  1. Buka Android Studio | New Project | Minimum SDK.

  2. Pilih API 15: Android 4.0.3 (IceCreamSandwich) atau lebih tinggi dan buat proyek baru Anda.

  3. Buka file Gradle Scripts | build.gradle (Project: <your_project>) dan tambahkan perintah berikut:

    mavenCentral()
    
  4. Simpan dan tutup file build.gradle (Project: <your_project>).

  5. Buka file Gradle Scripts | build.gradle (Module: app) dan tambahkan perintah berikut ke bagian dependencies:

    implementation 'com.facebook.android:facebook-android-sdk:latest.release'
    

  6. Simpan dan tutup file build.gradle (Module: app).

  7. Buat proyek Anda. Sekarang Anda dapat mengimpor com.facebook.FacebookSdk ke aplikasi Anda.

Memperbarui Manifes Anda

Tambahkan ID Aplikasi dan Token Klien ke file string proyek Anda dan perbarui file manifes. Lakukan hal berikut:

  1. Buka file /app/res/values/strings.xml di proyek aplikasi Anda.

  2. Tambahkan elemen string dengan nama facebook_app_id dan facebook_client_token, lalu atur nilai untuk ID Aplikasi dan Token Klien Anda. Contoh: jika ID aplikasi Anda adalah 1234 dan token klien Anda adalah 56789, kode Anda terlihat seperti berikut ini:

    <string name="facebook_app_id">1234</string><string name="facebook_client_token">56789</string>
  3. Buka file /app/manifests/AndroidManifest.xml di proyek aplikasi Anda.

  4. Tambahkan elemen meta-data ke elemen application untuk ID aplikasi dan token klien Anda:

    <application android:label="&#064;string/app_name" ...>
        ...
        <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"/>
        ...
    </application>
  5. Tambahkan elemen uses-permission ke manifes setelah elemen application:

    <uses-permission android:name="android.permission.INTERNET"/>
  6. (Opsional) Untuk menolak Izin ID Iklan, tambahkan elemen uses-permission ke manifes setelah elemen application:

    <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
  7. Buat proyek Anda.

Mengaktifkan Bagikan

Jika Anda membagikan tautan, gambar, atau video dari aplikasi Anda, nyatakan otoritas FacebookContentProvider di dalam manifes. Lakukan hal berikut:

  1. Buka file /app/manifests/AndroidManifest.xml di proyek aplikasi Anda.

  2. Tambahkan elemen provider ke manifes untuk otoritas FacebookContentProvider. Tambahkan ID aplikasi Anda di akhir nilai authorities. Contoh: jika ID aplikasi Anda adalah 1234, deklarasi terlihat seperti berikut:

    <provider android:authorities="com.facebook.app.FacebookContentProvider1234"
        android:name="com.facebook.FacebookContentProvider"
        android:exported="true" />
    
  3. Buat proyek Anda.

Menjalankan Contoh Aplikasi

Contoh berikut hadir bersama Facebook SDK untuk Android:

Anda dapat bereksperimen menggunakan contoh dengan cara mengimpor Facebook SDK ke proyek Android Studio. Contoh memiliki dependensi proyek daripada ketergantungan repositori pusat melalui maven central atau jcenter. Ini agar ketika salinan lokal SDK mendapatkan pembaruan, contoh akan mencerminkan perubahan tersebut.

Untuk menjalankan contoh aplikasi dengan cepat, Anda dapat membuat hash kode untuk lingkungan pengembangan. Tambahkan ini ke profil developer Facebook Anda untuk contoh aplikasi. Keytool, untuk membuat hash kode, disertakan dengan Java SE Development Kit (JDK) yang sudah Anda instal sebagai bagian dari penyiapan lingkungan pengembangan Anda. OpenSSL tersedia untuk diunduh dari OpenSSL.

Di OS X, jalankan:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Di Windows, Anda memerlukan hal berikut:

Jalankan perintah berikut di prompt perintah di folder Java SDK. Ini menghasilkan string 28 karakter.

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64

Buka situs Developer Facebook. Login ke Facebook, gunakan menu pilihan di sisi kanan atas untuk membuka Pengaturan Developer:

Di pengaturan developer, pilih Contoh Aplikasi dari menu, dan tambahkan dan simpan hash kode ke profil Anda:

Anda dapat menambahkan beberapa hash kode jika Anda mengembangkan dengan beberapa mesin.

Anda sekarang dapat mengompilasi dan menjalankan semua contoh - termasuk yang menggunakan Facebook Login.

Membuat Hash Kode Pengembangan

Facebook menggunakan kode hash untuk mengautentikasi interaksi antara aplikasi Anda dan aplikasi Facebook. Jika Anda menjalankan aplikasi yang menggunakan Facebook Login, Anda perlu menambahkan hash kode pengembangan Android ke profil developer Facebook Anda.

Untuk versi aplikasi yang Anda rilis, Anda juga perlu membuat dan mengatur Hash Kode Rilis.

Di OS X atau Windows Anda bisa mendapatkan hash kode dengan membuatnya atau dengan menggunakan nilai yang diberikan oleh Settings.getApplicationSignature(Context). Untuk petunjuknya, lihat Menjalankan Contoh Aplikasi.

Membuat Hash Kode Rilis

Untuk mengautentikasi pertukaran informasi antara aplikasi Anda dan Facebook, Anda perlu membuat hash kode rilis dan menambahkannya ke pengaturan Android dalam ID Aplikasi Facebook Anda. Tanpa hash kode rilis, integrasi Facebook Anda mungkin tidak berfungsi dengan baik saat Anda merilis aplikasi ke toko.

Pada langkah sebelumnya, Anda harus memperbarui Pengaturan Developer Facebook dengan hash kode untuk lingkungan pengembangan Anda.

Saat menerbitkan aplikasi Anda, biasanya ditandatangani dengan tanda tangan yang berbeda dengan lingkungan pengembangan Anda. Oleh karena itu, Anda ingin memastikan bahwa Anda membuat Hash Kode Rilis dan menambahkan ini ke pengaturan Android untuk ID Aplikasi Facebook.

Untuk membuat hash kode rilis, jalankan perintah berikut di Mac atau Windows dengan mengganti alias kode rilis dan jalur ke penyimpanan kode Anda.

Di Mac OS, jalankan:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Di Windows, Anda memerlukan hal berikut:

Jalankan perintah berikut di prompt perintah di folder Java SDK:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | PATH_TO_OPENSSL_LIBRARY\bin\openssl sha1 -binary | PATH_TO_OPENSSL_LIBRARY\bin\openssl base64

Pastikan Anda menggunakan kata sandi yang Anda atur pada saat pertama kali membuat kode rilis.

Perintah ini harus menghasilkan string 28 karakter. Salin dan tempelkan Hash Kode Rilis ini ke pengaturan ID Aplikasi Facebook Android Anda.

Anda juga harus memeriksa apakah pengaturan Android ID Aplikasi Facebook Anda juga berisi nama paket yang benar dan kelas aktivitas utama untuk paket Android Anda.

Menggunakan Facebook SDK untuk Android dengan Maven

Anda dapat mendeklarasikan dependensi Maven dengan versi terbaru dari Facebook SDK untuk Android.

<dependency>
  <groupId>com.facebook.android</groupId>
  <artifactId>facebook-android-sdk</artifactId>
  <version>PUT_LATEST_VERSION_HERE</version>
</dependency> 

Pemecahan Masalah Contoh Aplikasi

Jika Anda memiliki masalah saat menjalankan contoh aplikasi, mungkin masalahnya terkait dengan hash kode. Anda mungkin melihat salah satu skenario berikut:

  • Dialog Login native muncul; tetapi setelah menerima izin, Anda masih dalam keadaan keluar. Logcat juga berisi pengecualian:
12-20 10:23:24.507: W/fb4a:fb:OrcaServiceQueue(504):
com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id
  • Dialog Login non-native muncul dengan pesan kesalahan: ''...App is Misconfigured for facebook login...''.

Periksa hash kode Anda dan pastikan Anda menggunakan hash kode yang tepat. I

Anda juga dapat memodifikasi contoh kode secara manual untuk menggunakan hash kode yang tepat. Contoh: di kelas HelloFacebookSampleActivity, buatlah perubahan sementara ke onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
        
    } catch (NoSuchAlgorithmException e) {
        
    }
    
    ...

Simpan perubahan Anda dan jalankan kembali contoh. Periksa output logcat Anda untuk pesan yang mirip dengan ini:

12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

Simpan hash kode di profil developer Anda. Jalankan kembali contoh dan verifikasikan bahwa Anda berhasil login.