구글 로그인, 성취, 결제 접속

7881 단어 android
로그인 접속 준비
  • 공식 문서 로그인
  • 위 사이트에서 CONFIGURE A PROJECT를 클릭하여 로그인 프로젝트를 만듭니다
  • 요구에 따라 SHA-1keytool -exportcert -keystore your_keystore -list -v
  • 생성
  • 주의== 컴파일된 버전에서 사용하는 키스토어가 여기에서 사용하는 키스토어와 다르면 로그인 시 로그에서 StatusCode=DEVELOPER ERRROR,resolution=null}===stackoverflow의 문제 참조
  • 공식 문서 페이지의 버튼GOOGLE API CONSOLE을 누르고api 백엔드에 들어가 보기 .이것은 OAuth 2.0 ID란 아래에 Web client (Auto-created for Google Sign-in)가 있을 것이다. 이것이 바로 두 번째 단계에서 생성된 방문 키이다.

  • 2 지불 접속 준비
  • 테스트 주문: 설정-> 계정 상세 페이지-> 허가 테스트에 허가가 필요한 구글 계정 추가
  • Google Play Console에서 새 애플리케이션
  • 앱의 스토어 발표 -> 앱 내 상품 추가 판매할 상품
  • 테스트 버전 발표: 버전 관리 -> 응용 버전 -> 알파 또는 기타 테스트 버전 발표.테스트 버전을 입력하면 테스트 인원을 관리할 수 있습니다. 모두 폐쇄식 테스트로 설정하는 것을 권장합니다. 버전이 발표된 지 얼마 후 에 테스트 링크가 표시되고 테스트에 참가한 인원은 페이지에 들어가서 테스트에 참여할 수 있습니다.

  • 3 게임 성취 접속 준비
  • 공식 문서
  • Google Play Console의 최상위 메뉴 에서 게임 서비스 항목을 새로 만들고 이전에 만든 애플리케이션과 연결합니다.
  • 성취 내용을 설정하고 성취 Id를 자신의 게임 앱 설정에 넣으면 활성화 시 사용
  • 게임 관련 게임 서비스 후 게임 서비스 내용을 설정하고 발표해야 에서 응용한 상품의 상세한 정보를 수정할 수 있습니다.그러나 게임 서비스의 발표에 신중해야 한다. 발표 후 ==성취 ==는 삭제할 수 없다.
  • 게임 서비스 ->와 관련된 응용 프로그램에 귀속된api 클라이언트를 설정한다.여기서도 게임 서비스의 임의의 페이지에 있는 항목 이름 아래에 있는 12자리의 숫자를 응용할 수 있으며, 다음에 방문할 때 사용해야 한다.

  • 정식 접속
  • build에 있습니다.gradle의dependencies에 필요한 라이브러리 추가
    compile 'com.google.android.gms:play-services-auth:11.8.0'
    compile 'com.google.android.gms:play-services-games:11.8.0'
  • res/strings.xml에 에 포함된 응용 Id.실제 뒤에 에서 만든 그것Web client (Auto-created for Google Sign-in)은 더 이상 사용되지 않았고login만 접속할 때 필요합니다. 게임 서비스에 접속한 후에 뒤에 대체되었습니다.
    <string name="google_app_id">your_game_app_idstring>
  • 안드로이드 매니페스트에서.xml에 속성 설정 추가
    <meta-data android:name="com.google.android.gms.games.APP_ID"
      android:value="@string/google_app_id" />
    <meta-data android:name="com.google.android.gms.version"
      android:value="@integer/google_play_services_version"/>
  • 로그인 실현로그인만 받을 경우 DEFAULT_GAMES_SIGN_INDEFAULT_SIGN_IN로 수정됩니다.다음 코드 세그먼트는 각자 적당한 곳에 두어야 한다
    // 1.   client
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
                .requestIdToken(this.getString(R.string.server_client_id))
                .requestEmail()
                .build();
    m_GoogleSignInClient = GoogleSignIn.getClient(this, gso);
    
    // 2.     
    this.runOnUiThread(new Runnable() {
      @Override
      public void run() {
        Intent signInIntent = m_GoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, GOOGLE_LOGIN_REQUEST_ID);  // GOOGLE_LOGIN_REQUEST_ID     
      }
    });
    
    // 3.  onActivityResult     
    Task task = GoogleSignIn.getSignedInAccountFromIntent(data);
        try {
            GoogleSignInAccount account = task.getResult(ApiException.class);
            Games.getGamesClient(this, account).setViewForPopups(getWindow().getDecorView());
            //        account.getIdToken()        
            // account.getDisplayName()     
        } catch (ApiException e) {
            Log.d(m_LogTag, "google signInResult:failed code=" + e.getStatusCode());
        }
    . 주의: 게임스.getGamesClient(this, account).setViewForPopups(getWindow().getDecorView()); 이 말은 로그인 결과와 구글이 완성될 때 플로팅 창의 부모 창을 설정하는 데 사용됩니다.설정하지 않으면 정상적으로 로그인하고 성과를 완성할 수 있지만 구글의 플러그인 알림이 없습니다.서버 인증 로그인 문서 주소
  • 성취 활성화.성취의 활성화는 비교적 간단하다. 코드 한 마디만 있으면 된다.
    //      id  google      id
    Games.getAchievementsClient(this, account).unlock("your_achievement_id");
    
    //          
    Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
               .getAchievementsIntent()
               .addOnSuccessListener(new OnSuccessListener() {
                   @Override
                   public void onSuccess(Intent intent) {
                       startActivityForResult(intent, RC_ACHIEVEMENT_UI);
                   }
               });
  • 지불 접속.만약 자신의 주문 시스템이 있다면 두 가지를 주의해야 한다.
  • 자신의 주문 Id를payload로 구글 주문서에 전달한다.
  • 자신의 주문 검증을 통과한 후 구글 상품을 소모한다.
  • 권한 증가
    <uses-permission android:name="com.android.vending.BILLING" />
  • 구글 결제 예시 중의aidl을 자신의 프로젝트에 추가하는 예시 다운로드
  • 구글 결제 예시에 추가된util 도구util/google_play_util/
  • 휴대폰에 GooglePlay 환경 설치
  • 코드 접속
    // 1.     
    IabHelper mHelper;
    //   key  google play consle      ->    ->   API  ,  "          ",    RSA  
    static final String base64EncodedPublicKey = "your_public_key";
    
    // 2.     IabHelper
    mHelper = new IabHelper(this, base64EncodedPublicKey); 
    mHelper.enableDebugLogging(true, "PayHelper");
    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
        public void onIabSetupFinished(IabResult result) {
            mServicSuccess = result.isSuccess();
        }
    });
    
    // 3.                
    ...
  • 서비스 측 검증이 필요하다면api 백엔드는 서비스 계정을 개방하고 구글 플레이 콘슬로에서 서비스 계정을 가입하며 재무 정보 방법 권한을 부여해야 한다.



  • 다섯 가지 흔한 문제
  • 주의== 컴파일된 버전에서 사용하는 키스토어가 여기에서 사용하는 키스토어와 다르면 로그인 시 로그에서 StatusCode=DEVELOPER ERRROR,resolution=null}===stackoverflow의 문제 참조
  • 성취가 활성화되지만 구글의 성취 창을 표시하지 않으면 로그인 완료 시 설정: 게임스.getGamesClient(this, account).setViewForPopups(getWindow().getDecorView());
  • 좋은 웹페이지 즐겨찾기