android - 페이스북 - ClientID가있는 액세스 토큰을 얻을 때의 GoogleAuthException




페이스북 access token 발급 (4)

두 개의 클라이언트 ID는 동일한 프로젝트의 일부 여야합니다.

더 많은 맥락에서,이 게시물은 다음과 같습니다.

이전 문제를 해결하기 위해 Tim Bray가 제시 한 해결책을 따르려고했습니다. Android Apps에서 백엔드 호출 확인

2 개의 클라이언트 ID를 얻기 위해 Google API 콘솔에서 두 개의 프로젝트를 선언했습니다.

  • 첫 번째는 "웹 응용 프로그램"으로 "localhost"를 호스트 이름으로 사용합니다 (중요합니까?).
    • 고객 ID : XXXXXXXXXX.apps.googleusercontent.com
  • AndroidManifest.xml 및 SHA1 지문 (debug.keystore 및 [my] .keystore로 시도)에 지정된 패키지 이름을 사용하는 두 번째 Android 앱입니다.
    • 고객 ID : YYYYYYYYYY.apps.googleusercontent.com

불행히도 나는 안드로이드 측면에서 예외를 직면하고있어 :

com.google.android.gms.auth.GoogleAuthException: Unknown
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
at fr.barles.android.activity.LoginActivity$1.doInBackground(LoginActivity.java:66)
at fr.barles.android.activity.LoginActivity$1.doInBackground(LoginActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
at java.lang.Thread.run(Thread.java:1102)

라인에서 :

return GoogleAuthUtil.getToken(LoginActivity.this, account[0], "audience:server:client_id:XXXXXXXXXX.apps.googleusercontent.com");

내가 뭘 잘못하고 있니?

미리 감사드립니다.


내 패키지 이름을 변경하고 Google API 콘솔에서 디버그 SHA1을 사용하여 새 클라이언트 ID를 생성하는 것을 잊었을 때이 오류가 발생했습니다.


더 많은 것을 할 필요가 없습니다. Google 콘솔에서 클라이언트 ID를 다시 작성하고 코드에서이 줄을 범위 문자열로 작성하십시오.

String SCOPE = "oauth2:https://www.googleapis.com/auth/userinfo.profile";

https://github.com/AshishPsaini/GoogleAuth


GoogleApiCliente에 추가 된 범위를 Plus.SCOPE_PLUS_LOGIN으로 변경합니다. 나를 위해 일하는이.

    googleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Plus.API)
            .addScope(Plus.SCOPE_PLUS_LOGIN)
            .build();