Kesalahan: Status {statusCode = DEVELOPER_ERROR, resolusi = null}

102

Saya menggunakan masuk gplus, dan mendapatkan kesalahan ini pada saat saya berada di onActivityResult ....

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
    client.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 0) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {

            GoogleSignInAccount acct = result.getSignInAccount();
//                Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());

            mEmail = acct.getEmail();
            String mFullName = acct.getDisplayName();
            String mGoogleplusId = acct.getId();


            SocialUser user = new SocialUser();
            user.setType("googleplus");

            user.setEmail(mEmail);
            user.setFullname(mFullName);
            user.setId(mGoogleplusId + "");
            loginParams.put("email_id", mEmail);
            loginParams.put("googlePlusId", mGoogleplusId);
            loginParams.put("full_name", mFullName);
            loginParams.put("registrationType", "googleplus");
            SignUpService(user);


        } else {
            Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
        }
    }
}

Dan saya memanggil login gplus saat mengklik tombol. Pada tombol clcking kode berikut dijalankan ....

 GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)

            .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
            .build();


    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, 0);

Dan saya mendapatkan kesalahan ini ...

Status{statusCode=DEVELOPER_ERROR, resolution=null}

di baris ini ....

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);

Tolong sarankan solusinya.

Gurvinder Singh
sumber
1
Aplikasi salah dikonfigurasi. Periksa konfigurasi api google.
1'hafs
6
Ya, tetapi saya tidak dapat menemukan apa yang salah.
Gurvinder Singh
Saya tidak menggunakan firebase. Lihat solusi saya di sini: stackoverflow.com/a/46828895/1160216
Mike Miller

Jawaban:

213

Anda perlu menambahkan kunci SHA1 Anda ke konfigurasi konsol firebase. Anda dapat melakukannya dengan cara ini:

Konsol Firebase ( https://console.firebase.google.com ) -> proyek Anda -> konfigurasi -> gulir ke

masukkan deskripsi gambar di sini

Anda dapat menemukan kunci SHA1 Anda menjalankan "Laporan penandatanganan" dari Android Studio:

masukkan deskripsi gambar di sini

Kemudian, lihat "tab jalankan" dan klik tombol:

masukkan deskripsi gambar di sini

Saya pikir itu cara yang lebih mudah. Semoga bantuan ini.

SolArabehety
sumber
1
berikut adalah cara termudah untuk mendapatkan rilis SHA-1 dari konsol pengembang google: stackoverflow.com/a/50124038/4923891
eren130
Saya kesulitan memahami di mana harus meletakkan kunci SHA itu di Firebase Console. Akhirnya menemukannya. Buka Pengaturan Proyek> Gulir ke Bawah, Tambahkan Sidik Jari, Letakkan kunci SHA Anda di sana> Unduh google-services.json baru dan letakkan android-app \ app
paakjis
1
Catatan! Meskipun konsol firebase memiliki ruang untuk hash kunci SHA-256, Anda HARUS memasukkan kunci SHA-1. SHA-256 masih akan memberi Anda kesalahan
f.khantsis
Bermanfaat. Terima kasih!
Pooja
30

Mungkin Anda membuat file konfigurasi menggunakan SHA1 dari token produksi Anda , menggunakan androiddebugkeyalias untuk mengumpulkan SHA1 yang sesuai dengan versi debug aplikasi Anda dan menyalin file konfigurasi ke direktori 'app', Anda harus memiliki kedua file konfigurasi (satu untuk tujuan debug dan lainnya untuk lingkungan produksi).

Berdasarkan panduan yang dipublikasikan di https://developers.google.com/identity/sign-in/android/start

Mario
sumber
5
Kesalahan saya telah diperbaiki saat saya beralih ke kredensial Klien Web dan bukan Klien Android untuk ID klien OAuth 2.0. Kata-katanya masih membingungkan saya saat saya mengembangkan aplikasi Android yang terhubung ke server web ... tetapi setidaknya kesalahannya hilang
Burrito
12

Saya memiliki masalah yang sama dan berhasil dengan melakukan langkah-langkah berikut:

1. Tambahkan sidik jari DEBUG_KEYSTORE SHA1 ke proyek firebase. gunakan perintah berikut (MAC / LINUX)

  keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore  

2. Sekarang buat apk yang ditandatangani dari proyek Anda. Prosesnya termasuk membuat keystore untuk versi rilis aplikasi Anda.

  Copy the path of the newly generated .jks file.

3. Sekarang buat sidik jari RELEASE_KEYSTORE SHA1 menggunakan perintah berikut

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME

4. Salin SHA1 baru dari output dan tambahkan sebagai sidik jari SHA1 lain di konsol aplikasi firebase Anda.

Sekarang Anda siap berangkat! ---- Harapan! itu membantu.

Udit Kapahi
sumber
yang merilis sha1 hanya menempatkan kemudian juga mendapatkan kesalahan ini, menghasilkan google_services.xml untuk masuk google, analytics dan gcm, file tunggal
Harsha
pastikan bahwa sha1 Anda adalah versi 'rilis' dari aplikasi bukan versi 'debug'
Udit Kapahi
Ha Ya saya menghasilkan apk yang ditandatangani dan diterbitkan di appstore juga, bahwa kata sandi jks dan keystore hanya saya gunakan
Harsha
ssl terbuka saya adalah openssl-0.9.8k_WIN32 saya menggunakan previos untuk pengembangan satu
Harsha
keytool membutuhkan kata sandi : "android"
Guglie
11

masukkan deskripsi gambar di sini

Cara saya memperbaikinya adalah dengan mengambil kunci yang sesuai dengan teks yang disorot. Karena penggunaan kata 'server' yang membingungkan di halaman dokumentasi Firebase, saya mengambil Server key. Itulah alasan masalahnya.

Anda dapat menemukan kuncinya di sini .

4127157
sumber
Terima kasih! Bekerja dalam kasus saya. Saya pikir itu entah bagaimana terhubung dengan menggunakan server backend sendiri (dan memanggil "requestServerAuthCode" di GoogleSignIn)
ITurchenko
5

Saya mengalami masalah yang sama, bagaimana saya mengatasinya adalah saya memiliki applicationId yang berbeda di file gradle saya dari nama paket di file manifes saya. Dan saya menggunakan applicationId untuk membuat file json. Saya harus mengubah nama paket saya menjadi applicationId saya dan itu memperbaikinya untuk saya.

Renegade
sumber
1
saya selalu mengira paket dalam Manifes diganti oleh ApplicationId yang ditentukan dalam gradle. Bukan itu masalahnya?
Flo We
3

Sebagai alternatif dari jawaban yang diberikan di sini, Anda dapat menggunakan Asisten Firebase Android Studio untuk menambahkan SHA-1 secara otomatis ke proyek Anda dengan mengklik beberapa tombol.

Di Android Studio, buka Tools > Firebase > Select 'Authentication'dan klik tautan yang bertuliskan'Email and password authentication' .

Ini akan memberi Anda sedikit tutorial tentang cara mengintegrasikan Otentikasi ke proyek Anda, tetapi karena Anda mungkin telah melakukan semua itu, cukup klik 'Connect to Firebase'dan selesai.

Renan Aguiar
sumber
3

Ini pertanyaan lama, tetapi saya terjebak dengan kesalahan 10 (DEVELOPER_ERROR) akhir-akhir ini, karena saya menggunakan ID klien Android, yang saya buat di konsol pengembang google.

Solusi bagi saya adalah menggunakan kredensial Android di konsol pengembang google hanya untuk menunjukkan kunci SHA apk saya dan menggunakan ID klien kredensial aplikasi Web (!) Dari konsol pengembang google di aplikasi cordova saya.

config.xml:

<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
    <variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
    <variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>

kode:

window.plugins.googleplus.login(
    {
       'webClientId': '[web-application-client-id].apps.googleusercontent.com'
    }, 
    ...

Saya tidak menggunakan firebase.

tobik
sumber
Terima kasih banyak, ini menghemat banyak waktu saya. Memang, menggunakan web yang dibuat secara otomatis client idmenyelesaikan masalah DEVELOPER_ERROR. Meskipun bagi saya itu tidak masuk akal dan tidak jelas bahwa id klien yang berbeda harus digunakan.
Myroslav Kolodii
3

Anda mungkin telah membuat dan menambahkan kunci SHA1 yang salah. Gunakan langkah-langkah berikut untuk membuat kunci SHA1 di Android studio:

  1. Klik Gradle (Dari Panel Sisi Kanan, Anda akan melihat Gradle Bar)
  2. Klik Refresh (Klik Refresh dari Gradle Bar, Anda akan melihat Daftar skrip Gradle Proyek Anda)
  3. Klik Proyek Anda (Daftar formulir Nama Proyek Anda (root))
  4. Klik Tugas
  5. Klik di Android
  6. Klik Ganda pada penandatanganan (Anda akan mendapatkan SHA1 dan MD5 di Run Bar (Terkadang di Gradle Console))

Sekarang tambahkan kunci SHA1 ini di proyek android firebase Anda.

Sanjay Sharma
sumber
3

Harap Letakkan file json yang benar di root proyek android
Untuk lebih lanjut Lihat di sini: https://coderzpassion.com/android-working-latest-google-plus-login-api/

Jagjit Singh
sumber
Apakah wajib menambahkan json itu, yang biasa kita lakukan tanpanya sebelumnya?
Gurvinder Singh
Saya meletakkan file yang benar dengan konfigurasi yang benar, masih ada kesalahan
Bibaswann Bandyopadhyay
1

Bagi saya itu berfungsi ketika saya pertama kali menerapkannya, tetapi berhenti setelah beberapa hari pengembangan, dengan pesan kesalahan yang disebutkan.

Saya telah memecahkan masalah dengan langkah-langkah ini:

  1. Saya telah menambahkan sidik jari sha-256 di atas sidik jari sha-1 yang sudah saya miliki di konsol firebase. (Tidak yakin apakah langkah ini diperlukan)
  2. Saya telah mengunduh file google-services.json lagi dan mengganti file lama.
  3. menginstal ulang aplikasi

dan itu berhasil

Mantoska
sumber
0

Saya menemukan kesalahan ini di aplikasi firebase saya. Itu diperbaiki ketika saya menambahkan requestIdToken(activity.getString(R.string.default_web_client_id))bagian di bawah ini.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id))
        .build();

    apiClient = new GoogleApiClient.Builder(activity)
        .addConnectionCallbacks(this)
        .enableAutoManage(activity, this)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .build();

    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient);
    activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);
Dan Brough
sumber
apa itu default_web_client_id? dari mana saya bisa mendapatkannya?
Ayman Al-Absi
@ AymanAl-Absi Sudahkah Anda mengatur proyek Anda dengan benar untuk layanan google? lihat: developers.google.com/android/guides/google-services-plugin
Dan Brough
1
@ AymanAl-Absi Anda juga mendapatkan "default_web_client_id" dari file google-service.json Anda di file ini, Anda dapat melihat tag Client_ID di tag yang Anda salin hanya teks itu (client_ID) <[Client_ID] .app.etc>.
Pangeran
0

Saya mendapat kesalahan ini ketika saya memperbarui file konfigurasi json saya dengan akun google baru.

Menghapus instalasi aplikasi secara manual dan menginstal ulang aplikasi berhasil untuk saya.

sanath_p
sumber
0

Error ini terjadi karena checksum SHA-1 dari debug atau kunci rilis tidak disertakan dalam firebase / google console.

Pertama buat kunci menggunakan perintah berikut:

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

Kemudian salin checksum SHA-1 dan buka:

Konsol Firebase> Proyek Anda> Setelan aplikasi> Tambahkan Sidik Jari

Nabin Bhandari
sumber
0

Pastikan Anda mengaktifkan Masuk dengan Google di bawah Autentikasi di konsol Firebase.

hellowill89.dll
sumber
0

Saya memecahkan masalah saya dengan menggunakan server_client_id yang benar di baris ini:

String serverClientId = getString(R.string.server_client_id);

Saya menggunakan kode yang salah.

MJ
sumber
0

Beberapa Layanan seperti login google memerlukan sidik jari SHA1 untuk ditambahkan ke konsol firebase Anda.

Saya melewatkan menambahkan sidik jari SHA di konsol firebase. Anda dapat melakukannya dengan masuk ke Konsol FireBase> pengaturan proyek> Tambahkan opsi sidik jari.

Anda dapat membuat Sidik Jari SHA1 dengan cara yang sangat mudah https://www.youtube.com/watch?v=FczARQ244GE

Setelah itu saya melakukan satu kesalahan lagi

Setelah generasi kunci SHA1 dari metode di atas. Saya menyalin kunci SHA1 tidak valid yang salah yang sudah kedaluwarsa. Jadi pastikan kunci SHA1 yang Anda salin dari cara di atas keluaran adalah yang valid (Periksa nilai sampai yang valid juga dari Kunci SHA1)

Pastikan juga bahwa nama paket (xyz) yang Anda tambahkan di firebase sama dengan yang digunakan di kode android Anda.

Pastikan juga untuk menggunakan AppID yang benar

pengguna2694064
sumber
0

Setelah penyelidikan panjang, saya menemukan solusi. Sebenarnya kesalahan ini Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}menunjuk ke salah SHA-1 ATAU Nama paket salah ATAU yang lain ?. Dalam kasus saya, saya menambahkan debugkata kunci di akhir nama paket saya com.sample.app=>com.sample.app.debug

Albert
sumber