Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取页面访问令牌时FacebookAuthorizationCodeUsedException_Java_Gwt_Oauth 2.0_Facebook Page_Facebook Access Token - Fatal编程技术网

Java 获取页面访问令牌时FacebookAuthorizationCodeUsedException

Java 获取页面访问令牌时FacebookAuthorizationCodeUsedException,java,gwt,oauth-2.0,facebook-page,facebook-access-token,Java,Gwt,Oauth 2.0,Facebook Page,Facebook Access Token,我有一个现有的代码,它使用clientID的常量值来获取FacebookPage访问令牌。这个静态值来自于我部署到GAE的时候。但是因为我有很多AppID,所以我希望它是动态的。这是完成授权并输出代码的行: String url = "https://www.facebook.com/dialog/oauth" + "?client_id=" + FacebookHelper.app().getAppId() + "&redirect_uri=" +getCallbackUrlFor

我有一个现有的代码,它使用clientID的常量值来获取FacebookPage访问令牌。这个静态值来自于我部署到GAE的时候。但是因为我有很多AppID,所以我希望它是动态的。这是完成授权并输出代码的行:

String url = "https://www.facebook.com/dialog/oauth" + "?client_id=" + 
FacebookHelper.app().getAppId() + "&redirect_uri=" 
+getCallbackUrlForPageManager(stationId) + "&scope=" + permissions;
因此,我从stationID中获取station对象,然后获取其字符串AppID,而不是FacebookHelper.app().getAppId()(常量值)

我已绝对100%确认请求和回调URL匹配:

信息:FacebookPageOAu:16-51-50:OAuthull.PageManager:

信息:管理员:16-51-50:LoginURL:ForStationID:1

根据其他已解决问题的建议,我在重定向URI末尾使用了一个不带正斜杠(/)的测试。使用静态clientID时,完全没有斜杠

当我使用动态应用程序ID(并且两个URL仍然完全匹配)时,我会在没有斜杠的情况下得到此错误:

Uncaught exception from servlet
dwinq.common.social.FacebookAuthorizationCodeUsedException: Internal Facebook Exception: 100 message: 'Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request
    at dwinq.spoke.servlet.FacebookOAuth.callOAuth(FacebookOAuth.java:280)
    at dwinq.spoke.servlet.FacebookOAuth.fetchTokenFromCallback(FacebookOAuth.java:850)
    at dwinq.hub.servlet.FacebookPageOAuth.fetchTokenfromCallbackForPageManager(FacebookPageOAuth.java:98)
    at dwinq.hub.servlet.FacebookPageOAuth.acceptedPageManagerPermissions(FacebookPageOAuth.java:73)
    at dwinq.hub.servlet.FacebookPageOAuth.handle(FacebookPageOAuth.java:30)
    at dwinq.common.servlet.AbstractServlet.doGet(AbstractServlet.java:50)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
....
当我使用斜杠时,这个错误:

Uncaught exception from servlet
java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Long.parseLong(Long.java:450)
    at java.lang.Long.<init>(Long.java:690)
    at dwinq.hub.servlet.FacebookPageOAuth.acceptedPageManagerPermissions(FacebookPageOAuth.java:41)
    at dwinq.hub.servlet.FacebookPageOAuth.handle(FacebookPageOAuth.java:30)
    at dwinq.common.servlet.AbstractServlet.doGet(AbstractServlet.java:50)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
....
来自servlet的未捕获异常 java.lang.NumberFormatException:用于输入字符串:“” 位于java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 位于java.lang.Long.parseLong(Long.java:450) 位于java.lang.Long。(Long.java:690) 位于dwinq.hub.servlet.FacebookPageOAuth.acceptedPageManagerPermissions(FacebookPageOAuth.java:41) 位于dwinq.hub.servlet.FacebookPageOAuth.handle(FacebookPageOAuth.java:30) 位于dwinq.common.servlet.AbstractServlet.doGet(AbstractServlet.java:50) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717) ....
有什么想法吗?如果需要更多信息,我可以提供具体信息。

已解决。怎么用?重定向URI是在另一个类中重建的,我没有意识到。我使用服务器端日志而不是本地服务器来双重检查URI

此外,我尝试解析URI时假设最后一个斜杠不在重定向URI的末尾,这是不正确的