Di salah satu aplikasi saya, saya perlu mendapatkan data dari Facebook ... Saya melakukan ini:
Saya telah membuat ID aplikasi . Ini berhasil masuk, tetapi setelah keluar, saya masuk, dan kemudian memberi saya:
Apa yang salah yang saya lakukan? Saya menggunakan Facebook SDK ... Saya telah menginstal Facebook di ponsel saya ... Ini berjalan dengan baik dalam sebuah emulator, tetapi itu tidak memiliki aplikasi Facebook inbuilt diinstal.
Ini kode saya:
if (FB_APP_ID == null) {
Builder alertBuilder = new Builder(this);
alertBuilder.setTitle("Warning");
alertBuilder.setMessage("A Facebook Applicaton ID must be " +
"specified before running this example: see App.java");
alertBuilder.create().show();
}
// Initialize the dispatcher
Dispatcher dispatcher = new Dispatcher(this);
dispatcher.addHandler("login", LoginHandler.class);
dispatcher.addHandler("stream", StreamHandler.class);
dispatcher.addHandler("logout", LogoutHandler.class);
// If a session already exists, render the stream page
// immediately. Otherwise, render the login page.
Session session = Session.restore(this);
if (session != null) {
dispatcher.runHandler("stream");
}
else {
dispatcher.runHandler("login");
}
Jawaban:
Kunci hash yang dihasilkan salah. Anda bisa mendapatkan kunci hash menggunakan dua langkah.
Salah satunya adalah melalui command prompt. Satu lagi adalah melalui coding. Kunci hash melalui prompt perintah hanya berfungsi pada saat pertama. Saya tidak tahu alasannya. Saya juga punya masalah yang sama. Jadi saya mencobanya secara terprogram.
Ikuti langkah ini:
Rekatkan kode berikut ini
oncreate()
.Ubah "com.example.packagename" dengan nama paket Anda dalam pengkodean di atas tanpa gagal (Anda dapat menemukan nama paket Anda di file manifes Android).
Jalankan aplikasi Anda. Buka aktivitas di mana Anda menempelkan kode di atas. Di file LogCat, cari "KeyHash". Anda dapat menemukan hash utama. Salin hash utama dan buka halaman dasbor aplikasi Facebook. Buka pengaturan dan masukkan detail seperti pada gambar di bawah ini.
Setelah Anda menyelesaikan langkah di atas, jalankan ulang aplikasi lagi. Anda sekarang dapat masuk ke Facebook. Untuk detail lebih lanjut tentang hash kunci, periksa tautan .
Jika Anda menambahkan informasi yang salah di halaman pengaturan, itu berarti akan memberikan beberapa kesalahan. Jadi gunakan informasi yang benar di sana. Dan juga jika publik (selain Anda) perlu menggunakan aplikasi Anda berarti Anda harus mengaktifkan izin (ubah "ya" di "Status & Tinjauan" di sebelah pengaturan) .
sumber
Jika Anda menggunakan penandatanganan Aplikasi Google Play:
Buka bagian penandatanganan aplikasi di Google Play Console, dan dapatkan hash SHA-1 di bawah sertifikat penandatanganan aplikasi . Kemudian konversikan ke Base64 , misalnya dengan alat ini: Hexadecimal -> base64 decoder string
sumber
echo YOUR_SHA1_CERTIFICATE_COPIED_FROM_GOOGLE_PLAY | sed s/\://g | xxd -r -p | base64
Jika Anda menghadapi masalah ini maka masukkan kunci ini ke developer.facebook.com Anda :
Kemudian pastikan aplikasi Anda tayang langsung di developer.facebook.com .
Lingkaran hijau ini menunjukkan aplikasi sedang aktif:
Jika tidak, ikuti dua langkah ini untuk menjadikan aplikasi Anda aktif:
Langkah 1 Buka aplikasi Anda → pengaturan → tambahkan Email Kontak dan terapkan Simpan Perubahan.
Langkah 2 Buka opsi App Review dan pastikan toggle ini Ya . Saya menambahkan tangkapan layar:
Catatan: Jika Anda ingin menyalin hashkey, periksa BlueServiceQueue di LogCat .
sumber
BlueServiceQueue
di logcatSaya mendapat masalah yang sama. Saya yakin itu karena kesalahan yang sangat kecil dan ya itu!
Saya menemukan solusinya:
Saat membuat kunci hash debug di komputer saya, saya memasukkan kata sandi sistem saya. Tetapi kata sandinya harus sebagai berikut -
Masukkan kata sandi keystore: "android". Ini adalah satu-satunya masalah dalam kasus saya.
----- Untuk menghasilkan hash kunci Debug , gunakan perintah ini -
Masukkan kata sandi keystore: 'android'
----- Untuk Menghasilkan hash kunci Rilis , gunakan perintah ini -
Berikan kata sandi keystore Anda setelah menjalankan perintah ini.
sumber
Saya mengalami masalah yang sama. Saya melakukan riset singkat tentang kemungkinan alasan perilaku aneh ini dan saya menemukan yang berikut:
Selama eksekusi pertama aplikasi Facebook baru, itu akan memungkinkan koneksi / login bahkan jika Anda tidak menentukan hash kunci.
Bagi saya, tutorial yang disediakan Facebook tidak menghasilkan hash kunci yang benar, karena itu memberikan konfigurasi yang salah . Saat mengeksekusi:
pastikan Anda memeriksa semua properti - the
HOMEPATH
, keberadaan keystore, dll. Mungkin Anda juga harus memberikan kata sandi.Apa yang menghasilkan konfigurasi yang tepat adalah solusi yang disarankan oleh @Mahendran .
Juga, jika Anda melihat kesalahan semula diposting ( http://i.stack.imgur.com/58q3v.png ), kemungkinan besar hash kunci yang Anda lihat di layar adalah kesalahan Anda yang sebenarnya. Jika tidak ada yang berhasil, coba masukkan di Facebook.
Saya mendapatkan semua hasil dengan: Windows 7 64-bit edition, Android Studio 1.2.2, JDK 7.
sumber
Menurut Facebook Login untuk Android , Anda harus memberikan nilai hash kunci. Untuk mendapatkannya, Anda perlu kunci yang digunakan untuk menandatangani aplikasi Anda.
sumber
Anda harus membuat dua hash utama, satu untuk Debug dan satu untuk Rilis.
Untuk Debug hash kunci :
Pada OS X, jalankan:
Di Windows, jalankan:
Sumber hash kunci debug
Untuk Rilis hash kunci :
Pada OS X, jalankan (ganti apa yang ada di antara
<>
nilai-nilai Anda) :Di Windows, gunakan (ganti apa yang ada di antara
<>
nilai-nilai Anda) :Lepaskan sumber hash kunci
sumber
Saya mencoba semua jawaban sebelumnya dan tidak ada yang membantu kasus saya dengan klien saya!
Kemudian klien saya ingat dia menginstal Aplikasi Facebook di perangkatnya. Setelah dia menghapusnya. login berfungsi dengan baik.
Tombol hash telah diubah, dan saya telah mengganti kunci hash lama di Facebook Developers Console dengan kunci dari kesalahan (seperti yang disarankan di atas), dan berhasil!
Aplikasi Facebook itu sendiri mungkin menjadi masalah, jadi Anda sebaiknya mencari tahu ini di perangkat dengan aplikasi Facebook diinstal dan pada perangkat dengan aplikasi Facebook tidak diinstal dan menangani kedua kasus ...
sumber
Inilah cara saya memecahkan masalah ini:
Pertama, Anda harus mendapatkan nilai SHA-1. Untuk itu ada dua cara.
Untuk mendapatkan nilai SHA-1 di Android Studio.
ATAU
Untuk mendapatkan nilai SHA-1 dari file keystore .
Salin nilai SHA-1 ke clipboard Anda seperti ini:
Dan buka Hexadecimal -> Base64 decoder string untuk mengkonversi nilai SHA-1 Anda ke Base64.
Inilah yang dibutuhkan Facebook.
Dapatkan hash yang dihasilkan "******************** =" dan salin hash utama ke aplikasi Facebook.
sumber
Saya mengalami masalah yang sama. Pertama masuk, baik-baik saja, tapi kemudian, hash kunci tidak valid.
Facebook SDK for Unity mendapatkan kunci hash yang salah. Ia mendapatkan kunci dari "C: \ Users \" your user ".android \ debug.keystore" dan, di dunia yang sempurna, itu harus mendapatkannya dari keystore yang Anda buat dalam proyek Anda. Itu sebabnya ia memberi tahu Anda bahwa hash kunci tidak terdaftar.
Seperti yang disarankan oleh Madi , Anda dapat mengikuti langkah-langkah pada tautan ini untuk menemukan kunci yang tepat. Pastikan untuk mengarahkan mereka ke keystore di dalam proyek Anda. Kalau tidak, Anda tidak akan mendapatkan kunci yang tepat.
sumber
Kode berikut akan memberi Anda hash Anda untuk Facebook, tetapi Anda harus mengikuti langkah-langkah ini untuk mendapatkan hash kandidat rilis.
Salin dan tempel kode ini dalam aktivitas utama Anda
Buat file APK yang ditandatangani .
https://developers.facebook.com/apps
. Itu di bawah pengaturan.sumber
Setelah riset panjang, kami menemukan solusi.
Kami telah menetapkan izin sebagai:
Ini bekerja untuk pertama kalinya, tetapi ketika kami login kembali ke Facebook, itu memberikan Kesalahan Hash Tidak Valid .
Solusi sederhana adalah mengubah baris di atas menjadi:
Dan itu bekerja seperti kebahagiaan!
Facebook harus mengembalikan pengecualian yang benar dan bukan kesalahan kunci hash yang menyesatkan.
sumber
Setelah begitu banyak cobaan saya menemukan solusi untuk ini. Saya membuat dan menambahkan tombol debug dan lepaskan ke konsol pengembang Facebook dan masih mendapatkan kesalahan.
Satu-satunya solusi yang berfungsi untuk saya adalah menghapus program OpenSSL dari Google dan mengunduh dari Win32 / Win64 OpenSSL Installer untuk Windows
Ini benar-benar berfungsi seperti sihir.
sumber
Meskipun pertanyaan ini telah dijawab dengan banyak cara yang membantu saya hanya ingin menambahkan bahwa ketika saya mengikuti Rafal Maleks menjawab (menggunakan kunci hash di Google Play Console) saya TIDAK dapat menggunakan kunci App Signing SHA1, masih mendapat generik kesalahan dari Facebook. Alih-alih, saya perlu menggunakan sidik jari sertifikat SHA-1 dari bagian Unggah Sertifikat (tepat di bawah bagian Penandatanganan Aplikasi di Google Play Console). Proses yang sama jika tidak;
Salin sidik jari sertifikat SHA-1 dari bagian Unggah Sertifikat di Google Play Console
Konversikan SHA-1 menggunakan: http://tomeko.net/online_tools/hex_to_base64.php dan salin hasilnya (base64)
Rekatkan ke input Key Hash di developer.facebook.com dan simpan perubahan.
Semoga jawaban ini tidak berlebihan dan akan membantu seseorang yang tidak dapat membuatnya bekerja dengan sertifikat Penandatanganan Aplikasi.
Sekarang login Facebook berfungsi di aplikasi saya baik dalam mode debug dan rilis.
sumber
Rekatkan kode berikut ke metode OnCreate Anda:
Cukup modifikasi nama paket. Lalu pergi ke file LogCat Anda dan pilih Pencarian debug di sini. Kemudian Anda akan menemukan kunci hash. Sekarang salin kunci hash ini dan kemudian pergi ke situs developer.facebook.app_id, edit kunci hash Anda, dan tekan Save. Sekarang jalankan proyek Android Anda lagi. Saya pikir masalah akan terselesaikan.
sumber
Ini dapat membantu seseorang dengan masalah yang sama.
Hasilkan hash kunci menggunakan kode di bawah ini
Cara menggunakan keytool
Rekatkan di bidang yang diperlukan di pengembang Facebook
Di Android Studio, menu File → Struktur Proyek
Tambahkan parameter penandatanganan.
Pilih rasa
Pilih konfigurasi penandatanganan yang kami buat.
Pilih tipe bangunan
Pilih varian build dan bangunlah
sumber
Saya memiliki masalah yang sama ketika saya sedang debug aplikasi saya. Saya telah menulis ulang hash yang telah Anda coret pada gambar terlampir (yang menurut Facebook tidak valid) dan menambahkannya di konsol pengembang Facebook ke hash utama. Berhati-hatilah dengan kesalahan ketik.
Solusi ini lebih seperti solusi mudah daripada solusi yang tepat.
sumber
Jika Anda mengetikkan keyhash secara manual (misalnya dari ponsel ke Facebook Dashboard), pastikan untuk membedakan antara huruf L kecil dan huruf kapital I.
sumber
sumber
Apa yang digunakan Facebook bukanlah kata sandi dan alias default untuk debug. Anda perlu mengubahnya mengikuti dan itu akan berhasil.
Jika Anda belum mengubah apa pun dengan kata sandi default, kata sandi itu seharusnya "android" .
Anda juga dapat mengkonfigurasinya di file build.gradle. Tetapi kata sandi alias yang sama harus digunakan untuk menghasilkan hash:
sumber
Inilah banyak jawaban yang benar. Hanya satu hal:
Rekatkan hash yang diterima ke dalam Aplikasi → Pengaturan → Utama , bukan melalui tutorial memulai cepat.
sumber
Saya memiliki masalah yang sama.
Pastikan Anda membuat file APK dengan perangkat yang sama dengan hashkey yang disimpan di bagian pengembang Facebook.
sumber
Saya memperbaikinya dengan menambahkan yang berikut ke
MainApplication.onCreate
:Saya kemudian mengunggah ini ke konsol pengembang Google dan kemudian mengunduh APK turunan yang, untuk alasan apa pun, memiliki hash kunci yang sama sekali berbeda.
Saya kemudian menggunakan LogCat untuk menentukan hash kunci baru dan menambahkannya Facebook seperti yang telah dijelaskan oleh pengguna lain.
sumber
Jika Anda membuat hash kunci rilis, pastikan Anda memasukkan kata sandi aktual dari keystore Anda dan tidak "android".
Ini masalah saya. Rilis debug bekerja, tetapi rilis APK tidak.
sumber
Gunakan kode di bawah ini dalam metode onCreate () aktivitas Anda:
Jalankan kode ini. Ini akan menghasilkan kunci hash. Salin KeyHash ini di pengaturan aplikasi Facebook, dan simpan perubahan. Kemudian masuk ke aplikasi Anda. Ini akan bekerja dengan sempurna di masa depan juga.
sumber