我找到了它发生的原因。问题在范围内。我只设置了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"}
如您所见,google oauth2 要求https://www.googleapis.com/auth/userinfo.email、https://www.googleapis.com/auth/userinfo.profile、https://www.googleapis.com/ auth/userinfo.id范围。
在我添加了这个范围之后,我得到了一个新的错误,比如“invalid_scope”。
问题出在连接网址中。
我将连接网址创建为:
connectionFactory.getOAuthOperations().buildAuthorizeUrl(GrantType.AUTHORIZATION_CODE, params);
其中参数:
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");
在这种情况下,符号“+”被解码为另一个,Google oauth2 api 无法识别范围集。
我希望这个解决方案将来能对某人有所帮助。