2016-07-15 23 views
5

Yardımınıza ihtiyacım var ... Artık bir fikrim yok!Google Sign-in her zaman başarısız GoogleSignInResult

Neden her zaman başarısız olduğunu anlamıyorum.

  • Kimlik istemcileri OAuth 2.0 oluşturuldu.
  • google-services.json dosyasını ./app klasörüne oluşturup taşıyorum.
  • Google Cloud Console ile, etkinleştirilmiş tüm Google API'ları.

Check-out ve eğer bir şey sizi incittiyse ... Haydi!

package sign.in.gogoleplusconnect; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import com.google.android.gms.auth.api.Auth; 
import com.google.android.gms.auth.api.signin.GoogleSignInAccount; 
import com.google.android.gms.auth.api.signin.GoogleSignInOptions; 
import com.google.android.gms.auth.api.signin.GoogleSignInResult; 
import com.google.android.gms.common.ConnectionResult; 
import com.google.android.gms.common.SignInButton; 
import com.google.android.gms.common.api.GoogleApiClient; 

public class MainActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener, View.OnClickListener 
{ 
    private static final int RC_SIGN_IN = 9001; 

    private GoogleSignInOptions gso; 
    private GoogleApiClient mGoogleApiClient; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Log.d("Logger", "onCreate:"); 

     // Configure sign-in to request the user's ID, email address, and basic 
     // profile. ID and basic profile are included in DEFAULT_SIGN_IN. 
     gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
       .requestEmail() 
       .build(); 

     // Build a GoogleApiClient with access to the Google Sign-In API and the 
     // options specified by gso. 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
       .build(); 

     // Customize sign-in button. The sign-in button can be displayed in 
     // multiple sizes and color schemes. It can also be contextually 
     // rendered based on the requested scopes. For example. a red button may 
     // be displayed when Google+ scopes are requested, but a white button 
     // may be displayed when only basic profile is requested. Try adding the 
     // Scopes.PLUS_LOGIN scope to the GoogleSignInOptions to see the 
     // difference. 
     SignInButton signInButton = (SignInButton) findViewById(R.id.sign_in_button); 
     signInButton.setSize(SignInButton.SIZE_STANDARD); 
     signInButton.setScopes(gso.getScopeArray()); 
     signInButton.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) 
    { 
     switch (v.getId()) 
     { 
      case R.id.sign_in_button: 
       Log.d("Logger", "onClick:"); 
       signIn(); 
       break; 
     } 
    } 

    private void signIn() 
    { 
     Log.d("Logger", "signIn:"); 
     Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
     startActivityForResult(signInIntent, RC_SIGN_IN); 
    } 

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

     // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); 
     if (requestCode == RC_SIGN_IN) 
     { 
      Log.d("Logger", "onActivityResult:RC_SIGN_IN : " + RC_SIGN_IN); 
      GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
      handleSignInResult(result); 
     } 
    } 

    private void handleSignInResult(GoogleSignInResult result) 
    { 
     Log.d("Logger", "handleSignInResult:" + result.isSuccess()); 
     if (result.isSuccess()) 
     { 
      Log.d("Logger", "handleSignInResult : Success"); 
      // Signed in successfully, show authenticated UI. 
      GoogleSignInAccount acct = result.getSignInAccount(); 

      Log.d("Logger", "" + acct.getDisplayName()); 
      Log.d("Logger", "" + acct.getEmail()); 
      Log.d("Logger", "" + acct.getPhotoUrl()); 
      Log.d("Logger", "" + acct.getId()); 
     } 
     else 
     { 
      // Signed out, show unauthenticated UI. 
      Log.d("Logger", "handleSignInResult : Fail"); 
     } 
    } 

    @Override 
    public void onConnectionFailed(ConnectionResult connectionResult) 
    { 
     Log.d("Logger", "onConnectionFailed : Fail"); 
    } 
} 

Logcat.log

apply plugin: 'com.google.gms.google-services' 
android { 
compileSdkVersion 23 
buildToolsVersion "23.0.3" 

defaultConfig { 
    applicationId "sign.in.gogoleplusconnect" 
    minSdkVersion 16 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 
dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.0.0' 
compile 'com.google.android.gms:play-services-auth:9.0.0' 
compile 'com.google.android.gms:play-services-identity:9.0.0' 
compile 'com.google.android.gms:play-services:9.0.0' 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TextView 
    android:id="@+id/title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="5dp" 
    android:layout_centerHorizontal="true" 
    android:text="Gogole Sign In" 
    android:textSize="30sp" 
    android:textColor="#000000"/> 

<com.google.android.gms.common.SignInButton 
    android:id="@+id/sign_in_button" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/title" 
    android:layout_margin="20dp" 
    android:layout_marginTop="20dp"/> 
</RelativeLayout> 

MainActivity.java

:

tür

build.gradle ilişkin Kodunuzdaki itibaren

07-15 16:06:27.817 21424-21424/sign.in.gogoleplusconnect D/Logger: onCreate: 
07-15 16:06:30.053 21424-21424/sign.in.gogoleplusconnect D/Logger: onClick: 
07-15 16:06:30.055 21424-21424/sign.in.gogoleplusconnect D/Logger: signIn: 
07-15 16:06:32.872 21424-21424/sign.in.gogoleplusconnect D/Logger: onActivityResult:RC_SIGN_IN : 9001 
07-15 16:06:32.879 21424-21424/sign.in.gogoleplusconnect D/Logger: handleSignInResult:false 
07-15 16:06:32.879 21424-21424/sign.in.gogoleplusconnect D/Logger: handleSignInResult : Fail 

cevap

0

, bununla

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

değiştirin:

gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestIdToken("web client id from console.developers.google.com for the app") 
      .requestEmail() 
      .build(); 

Umut bu yardım birisi. Ayrıca Firebase ile Signin çok daha kolay olur. Bu link çıkışını kontrol edin. Teşekkürler

İlgili konular