처음 Google+ API를 사용 중입니다. 인증에 G +를 사용하는 웹 및 Android 클라이언트가있는 애플리케이션이 있습니다. 웹 클라이언트가 잘 작동합니다. 자바 API 클라이언트에서 토큰을 가져 오는 데 사용하는 Google API 콘솔에 "웹 응용 프로그램의 클라이언트 ID"가 설정되어 있습니다.GoogleAuthUtil.getToken()에서 토큰을 확인할 때 OAuth2ErrorException invalid_token 서버의 Google+
:url = ('https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s' % token) h = httplib2.Http() result = json.loads(h.request(url, 'GET')[1])
<button class="g-signin" data-scope="https://www.googleapis.com/auth/plus.login" data-requestvisibleactions="http://schemas.google.com/AddActivity" data-clientId="my_web_application_client_id" data-callback="onSignInCallback" data-theme="dark" data-cookiepolicy="single_host_origin">
내가 함께 파이썬 서버에서 확인 :
자바 스크립트 클라이언트는 (구글 데모 애플리케이션에서 기본적으로 그대로 촬영) 다음과 같은 버튼을 사용하여
지금까지 너무 좋아. 토큰이 예상대로 확인됩니다. 키 도구 -exportcert -alias androiddebugkey -keystore하게 debug.keystore -list -v :
이제 안드로이드 앱 ... 나는에 의해 생성 된 디버그 지문과 같은 프로젝트에 대해 "안드로이드 응용 프로그램 클라이언트 ID"를 설정
클라이언트 ID 이름의 패키지가 내 Android 매니페스트의 패키지와 일치합니다. 내 안드로이드 응용 프로그램에서 토큰을 생성하는 GoogleAuthUtil을 사용하고
:
String token =
GoogleAuthUtil.getToken(
this,
"[email protected]",
"oauth2:server:client_id:<client_id>:" +
"api_scope:https://www.googleapis.com/auth/plus.login");
내가 내 새로 생성 된 안드로이드 응용 프로그램 클라이언트 ID를 사용하는 경우, 내가 얻을 : GoogleAuthException : com.google.android합니다. gms.auth.GoogleAuthException : 알 수 없음
아직 해결되지 않았지만 몇 가지 해결책은 웹 응용 프로그램 클라이언트 ID를 사용해야한다는 것과 예외가 의도 한대로 작동한다는 것입니다.
나는 내 웹 응용 프로그램 클라이언트 ID를 사용하는 경우
후 모든 것이 잘 작동하는 나타나고 토큰이 반환됩니다,하지만 난 확인하기 위해 내 서버에 토큰을 보낼 때, 토큰이 거부됩니다 :{u'error_description': u'Invalid Value', u'debug_info': u'code: INVALID_VALUE
http status: 400
arguments: [invalid_token]
cause: com.google.security.lso.protocol.oauth2.common.OAuth2ErrorException:\
invalid_token at
com.google.security.lso.grant.token.TokenManager.getTokenInfo(TokenManager.java:603) at
com.google.security.lso.apiary.tokeninfo.TokenInfoAction.execute(TokenInfoAction.java:92)
서버에 도착하는 토큰이 앱에서 가져온 토큰과 동일하다는 것을 확인했습니다 (잘못된 공백 없음 등).
내가 잘못하고있는 아이디어가 있습니까? 어떤 제안을 주셔서 감사합니다!