Occured an INTERNAL_ERROR when requestEmail from GoogleSignInOptions Android

Choxmi picture Choxmi · Jan 22, 2016 · Viewed 10k times · Source

I'm following google instruction to add sign in with google button to my app. If I request sign in without requestEmail()

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .build();

It returns the result as successful. But if I request email, it occures an INTERNAL_ERROR as the status.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();

returns

E/Result: Status{statusCode=INTERNAL_ERROR, resolution=null}

I'm stuck here. Any help highly appreciated. Please comment if you need further information about the code. Thank you

Answer

Sam Stern picture Sam Stern · Jan 28, 2016

If you get error code 8 (INTERNAL_ERROR), please double check your app registration in dev console. Note that every registered Android client is uniquely identified by the (package name, Android Signing Certificate SHA-1) pair. If you have multiple package names / signing certificate for your debug and production environments, make sure to register every pair of them. To verify:

  1. Open the Credentials page and select your project
  2. Make sure every pair has an Android typed OAuth 2.0 client IDs. To create a new OAuth 2.0 client ID for your Android client, select New Credentials->OAuth2 Client ID from the dropdown, select Android and input your Package name / Signing-certificate fingerprint there.

To get your signing key certificate SHA-1:

Standard Debug Key keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Other (Custom) Key keytool -list -v -keystore $YOUR_KEYSTORE_LOCATION