2016-07-27 2 views
0

У меня есть приложение для Android, где я подписывать в/с Google, поэтому я использую следующий Google Api Клиент:Должен ли я создать 2 клиента Google Api для Drive.API и Auth.GOOGLE_SIGN_IN_API?

 mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .enableAutoManage(this, this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .addOnConnectionFailedListener(this) 
      .build(); 

Но когда я хочу установить этот клиент Google Api для подключения привода, как это:

 mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .enableAutoManage(this, this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .addApi(Drive.API) 
      .addOnConnectionFailedListener(this) 
      .build(); 

у меня есть:

onConnectionFailed:ConnectionResult{statusCode=INTERNAL_ERROR, resolution=null, message=null} 

А потом об ошибке, если я хочу, чтобы SignOut вызвать GoogleApiClient не связаны (в связи с connectionFa iled)

У меня есть файл конфигурации в приложении для моей папки, проверьте всю информацию в консоли разработчика Google, я не получаю его.

ответ

0

Вам просто нужно один GoogleApiClient, главное, чтобы определить область с помощью requestScopes(new Scope(Scopes.DRIVE_APPFOLDER)), т.е.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
       .requestIdToken(getString(R.string.default_web_client_id)) 
       .requestScopes(new Scope(Scopes.DRIVE_APPFOLDER)) 
       .requestEmail() 
       .build(); 

mGoogleApiClient = new GoogleApiClient.Builder(getApplicationContext()) 
       .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
       .addApi(Drive.API) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .build(); 
Смежные вопросы