2012-07-30 9 views
0

안녕하십니까?GoogleConntectionFactory에서 연결할 수 없습니다.

것은이 같은 오류가있어 : 내가 연결을 얻을 싶어 할 때

WARN/DefaultRequestDirector(22739): Authentication error: Unable to respond to any of 
these challenges: {authsub=WWW-Authenticate: AuthSub 
realm="https://www.google.com/accounts/AuthSubRequest" allowed- 
scopes="https://www.googleapis.com/auth/userinfo.email, 
https://www.googleapis.com/auth/userinfo.profile, 
https://www.googleapis.com/auth/userinfo.id"} 

그것은 앞으로 일어날이있다 :

AccessGrant accessGrant = new AccessGrant(accessToken); 
Connection<Google> connection = connectionFactory.createConnection(accessGrant); 

결과, 나는 401

는 인증으로 예외를 했 잡기 그 문제가 하나 있니?

+0

나는 그 ... 요청에 따라 범위 키에 내가으로 OAuth2를 사용 – Rusfearuth

답변

0

나는 그것이 일어난 이유를 발견했습니다. 문제는 범위에있었습니다. 나는 https://www.googleapis.com/auth/plus.me 범위 만 설정합니다. 연결 만들기에 충분하지 않았습니다.

WARN/DefaultRequestDirector(22739): Authentication error: Unable to respond to any of 
these challenges: {authsub=WWW-Authenticate: AuthSub 
realm="https://www.google.com/accounts/AuthSubRequest" allowed- 
scopes="https://www.googleapis.com/auth/userinfo.email, 
https://www.googleapis.com/auth/userinfo.profile, 
https://www.googleapis.com/auth/userinfo.id"} 

당신이 구글에서 OAuth2이 https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile, https://www.googleapis.com/auth/userinfo.id 범위를 요청 볼 수 있듯이 :

은 결과, 나는 다음 메시지가 있었다.

이 범위를 추가 한 후에 새로운 오류가 발생했습니다. "invalid_scope"가 좋습니다.

연결 URL에 문제가 있습니다.

나는 연결 URL을 생성 등 :

이 경우
OAuth2Parameters params = new OAuth2Parameters(); 
params.setRedirectUri(redirectUri); 
params.setScope("https://www.googleapis.com/auth/userinfo.email+" + "https://www.googleapis.com/auth/userinfo.profile+" + "https://www.googleapis.com/auth/userinfo.id+" + 
"https://www.googleapis.com/auth/plus.me"); 

, 기호가 "+"범위 설정을 인식 할 수있는 또 다른 하나는 구글에서 OAuth2 API를 디코딩되었다 PARAMS이

connectionFactory.getOAuthOperations().buildAuthorizeUrl(GrantType.AUTHORIZATION_CODE, params); 

.

나는이 솔루션이 미래에 누군가에게 도움이되기를 바랍니다.

0

OAuth2 인증을 사용해야 할 때 이전 AuthSub 인증을 사용하는 것 같습니다. example application을 살펴 보시고, 구체적으로 SocialConfig에서 로그인에 사용되는 ProviderSignInController를 만드는 방법을 참조하십시오.

+0

을 응답 할 수 있기 때문에 DefaultRequestDirector의 무슨 일이 생긴 추측,하지만 난 당신이 국가를 위해 AuthSub를 사용하려는 시도를 포함 로그 연결 =/ – Rusfearuth

+0

를 만들 수 없습니다. 다시 한 번 시작하기 위해 예제 애플리케이션을 복제하는 것이 좋습니다. – Gabriel

+0

안드로이드 앱에서 social-spring을 사용하지 않습니다. – Rusfearuth

관련 문제