2017-03-22 3 views
0

현재 앱에 googleplus 기호를 쓰고 있으며 Google에서 액세스 토큰을 가져 오는 중임니다. Google에 액세스 토큰을 얻는 방법에 대한 설명서를 읽었습니다. here. 그리고 그것을 구현하는 방법을 잘 모르겠습니다.GooglePlus에서 액세스 토큰 가져 오기

public class GplusAction implements LoginInterface,LogoutInterface{ 

private GoogleApiClient googleApiClient; 
private GoogleSignInOptions googleSignInOptions; 
private Context context; 
private final static int REQ_CODE = 777; 
private Intent signInIntent; 
private String accountname; 

public GplusAction(Context context) { 
    this.context = context; 

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

    googleApiClient = new GoogleApiClient.Builder(context) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions) 
      .build(); 
} 


@Override 
public void login() { 
    signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient); 
    startActivityForResult((Activity) context, signInIntent, REQ_CODE, null); 
} 

@Override 
public void logout() { 
    Auth.GoogleSignInApi.signOut(googleApiClient); 
} 


@Override 
public void get_onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(requestCode == REQ_CODE){ 
     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(signInIntent); 
    } 
} 

내가 GoogleAuthUtils를 사용하여 시도했지만 위의 링크에 설명 된대로 사용되지 않는 것 같습니다 :

아래에서 gplus 기호를 구현하는 내 코드의 일부를 보여줍니다.

내 질문은 다음과 같습니다. - 새 방법을 사용하여 액세스 토큰을 검색하려면 어떻게합니까?

아이디어가 있으십니까?

답변

0

인증 토큰을 서버와 인증 받으려면 다음 단계를 따라야합니다.

1) 앱 프로젝트의 경우 Google 콘솔에서 웹 애플리케이션 용 클라이언트 ID를 가져옵니다.

2) 클라이언트 ID 위에 GoogleSignInOptions 이하로 전달되는 GoogleApiClient의 인스턴스를 만듭니다.

String serverClientId = getString(R.string.server_oauth_client_id); 

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

3) 로그인 성공 후 GoogleSignInResult에서 ID 토큰을 검색 할 수 있습니다.

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 

if (result.isSuccess()) { 
    GoogleSignInAccount acct = result.getSignInAccount(); 
    String idToken = acct.getIdToken(); 
} 
+0

안녕하세요! 답장을 보내 주셔서 감사합니다. 귀하의 코드에서 디버그를 실행하고 "authCode = null", 즉 인증 토큰을 검색 할 수 없음을 의미합니다. 주위에? –

+0

안녕하세요 유진, 잘못된 코드를 게시했습니다. getIdToken()이어야합니다. 나는 그것을 재시험했고 토큰을 얻었다. GoogleSignInOptions을 만들 때 웹 응용 프로그램 클라이언트 ID를 사용해야합니다. –

+0

안녕하세요! 답장을 보내 주셔서 감사합니다. 나는 getIdToken()도 시도해 보았고 반환 할 토큰을 얻었다. 완전한! 다시 한 번 고마워! –

관련 문제