2012-04-18 10 views
2

ユーザのアクセストークンを取得しようとしているときにこのエラーが発生します。これは、Facebookのアプリケーションの承認プロセスと関係しています。その例外を生成したコードは以下の通りです:OAuthProblem、missing parameter access_token

OAuthClientRequest oAuthRequest = OAuthClientRequest 
    .tokenLocation("https://graph.facebook.com/oauth/access_token") 
    .setGrantType(GrantType.AUTHORIZATION_CODE) 
    .setClientId("myAppId") 
    .setClientSecret("myAppSecret") 
    .setRedirectURI("myAppURL").setCode(code) 
    .buildBodyMessage(); 

そしてスローされた例外は、下に、以下:

12:14:22,468 ERROR [STDERR] OAuthProblemException{description='Missing parameters: 
access_token', error='invalid_request', uri='null', state='null', scope='null'} 
12:14:22,468 ERROR [STDERR]  
at org.apache.amber.oauth2.common.exception.OAuthProblemException.error(OAuthProblemException.java:57) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.common.utils.OAuthUtils.handleOAuthProblemException(OAuthUtils.java:165) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.common.utils.OAuthUtils.handleMissingParameters(OAuthUtils.java:183) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validateRequiredParameters(OAuthClientValidator.java:90) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validateParameters(OAuthClientValidator.java:53) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validate(OAuthClientValidator.java:49) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.response.OAuthClientResponse.validate(OAuthClientResponse.java:61) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.response.OAuthClientResponse.init(OAuthClientResponse.java:56) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.response.OAuthAccessTokenResponse.init(OAuthAccessTokenResponse.java:52) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.response.OAuthClientResponseFactory.createCustomResponse(OAuthClientResponseFactory.java:60) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.URLConnectionClient.execute(URLConnectionClient.java:105) 
12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.OAuthClient.accessToken(OAuthClient.java:58) 
12:14:22,469 ERROR [STDERR] at tpc.facebook.autenticacion.ServletOAuth2.obtenerCodeYAccessToken(ServletOAuth2.java:315) 
12:14:22,469 ERROR [STDERR] at tpc.facebook.autenticacion.ServletOAuth2.doGet(ServletOAuth2.java:217) 
12:14:22,469 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
12:14:22,469 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
12:14:22,469 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
12:14:22,469 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)1 
12:14:22,469 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
12:14:22,469 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
12:14:22,469 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
12:14:22,469 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
12:14:22,469 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
12:14:22,469 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
12:14:22,469 ERROR [STDERR] at java.lang.Thread.run(Thread.java:662) 

答えて

1

私はあなたが通常のOAuthJSONAccessTokenResponse使用することができると思う:

OAuthAccessTokenResponse oAuthResponse = oAuthClient.accessToken(request); 

を私の問題があります、Facebookは

と答えます。
OAuthProblemException{description='null', error='{"message":"Error validating verification code.","type":"OAuthException","code":100}', uri='null', state='null', scope='null'} 

アイデア?

+0

私はそれを動作させました!問題は、リダイレクトURLがすべてのoauth要求で同じでなければならないということです。 OAuthJSONAccessTokenResponseに関することを忘れてしまいます。 GitHubTokenResponseを使用する必要があります – stefon

+1

ありがとう男!いい物! –

4

私は、クライアントとサーバを実装する同じ問題を抱えていた問題は、Apacheアンバー(Oltu)プロジェクトでのクライアントの例では約1ミスです:

最初に、認証コード要求(仕事を)持っています第2の再で

OAuthClientRequest request = OAuthClientRequest 
    .tokenLocation(ACCESS_TOKEN_URL) 
    .setGrantType(GrantType.AUTHORIZATION_CODE) 
    .setClientId(CLIENT_ID) 
    .setClientSecret(CLIENT_SECRET) 
    .setRedirectURI(REDIR_URL) 
    .setCode(code) 
    .**buildBodyMessage**(); 

間違いがbuildBodyMessage(約です):

OAuthClientRequest request = OAuthClientRequest 
.authorizationLocation(AUTHORIZE_URL) 
.setClientId(CLIENT_ID) 
.setRedirectURI(REDIR_URL) 
.setResponseType(CODE_RESPONSE) 
.**buildQueryMessage**(); 

と(動作しない)アクセストークンについて、第2の要求クエスト。それをbuildQueryMessage()で変更します。

お楽しみください:)

+0

https://stackoverflow.com/questions/47001135/apache-oltu-instragram-integration-doesnt-return-access-token-whyでガイドしてください。 – Prateek