2016-04-26 13 views
2

Playゲームサービスのドキュメントhttps://developers.google.com/games/services/android/quickstartで、私は何かを見落としているかもしれませんが、トークンを取得する方法などのバックエンドサーバー認証を実装する方法Googleのサーバーにログインし、自分のバックエンドサーバーに渡してログインを確認します。私は誰かが私に手がかりを与えることができることを望む。ありがとう!Googleのゲームでバックエンドサーバー認証を実装する方法

答えて

0

ステップ1:buttonclickリスナーを追加

ステップ3:Googleのためのリスナーのチェックではブールを保護

public void googleLoginClicked(View v){ 
     if (checkPlayServices()) { 
      pickUserAccount(); 
     }else{ 
      showToast("Google Play Services is not installed or updated in your deivce", Toast.LENGTH_LONG); 
     } 
    } 

サービスば可用性を果たし ステップ2

標準のGoogleログインボタンとボタンを作成します。 checkPlayServices(){ int resultCode =

GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); 
     if (resultCode != ConnectionResult.SUCCESS) { 
      if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { 
       GooglePlayServicesUtil.getErrorDialog(resultCode, this, 
         PLAY_SERVICES_RESOLUTION_REQUEST).show(); 
      } else { 
      // Log.i("GCM", "This device is not supported."); 
       finish(); 
      } 
      return false; 
     } 
     return true; 
    } 

ステップ4:Googleが携帯電話でアカウントの

検索:

private void pickUserAccount() { 
     String[] accountTypes = new String[]{"com.google"}; 
     Intent intent = AccountPicker.newChooseAccountIntent(null, null, 
       accountTypes, false, null, null, null, null); 
     startActivityForResult(intent, REQUEST_CODE_PICK_ACCOUNT); 
    } 

ステップ5:

onActivityResult:

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

     if (requestCode == REQUEST_CODE_PICK_ACCOUNT) { 
      if (resultCode == RESULT_OK) { 
       mEmail = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); 
       getUsername(null); 
      } else if (resultCode == RESULT_CANCELED) { 
       showToast("You must pick an account", 
         Toast.LENGTH_SHORT); 
      } 

     } else if (requestCode == REQUEST_CODE_RECOVER_FROM_PLAY_SERVICES_ERROR && resultCode == RESULT_OK) { 
      Bundle extra = data.getExtras(); 
      String oneTimeToken = extra.getString("authtoken"); 
      getUsername(oneTimeToken); 

     } 

    } 

ステップ6:成功の背景を使用してGoogleからユーザー名を取得タスク

Asy ncTask:

doinbackground(){ 
... 
fetchToken 
... 
} 


protected String fetchToken() throws IOException { 
     try { 
      return GoogleAuthUtil.getToken(mActivity, mEmail, mScope); 
     } catch (UserRecoverableAuthException userRecoverableException) { 
      // GooglePlayServices.apk is either old, disabled, or not present, which is 
      // recoverable, so we need to show the user some UI through the activity. 
      mActivity.handleException(userRecoverableException); 
     } catch (GoogleAuthException fatalException) { 
      onError("Unrecoverable error " + fatalException.getMessage(), fatalException); 
     } 
     return null; 
    } 
関連する問題