java - 使用 org.facebook4j 的 Facebook 身份验证错误

标签 java facebook facebook-graph-api

我正在使用

<dependency>
        <groupId>org.facebook4j</groupId>
        <artifactId>facebook4j-core</artifactId>
        <version>2.2.2</version>
</dependency>

依赖

登录后,我收到此错误日志,相同的代码在开发模式(本地)上运行,但在生产上出现此错误。

<!DOCTYPE html> 
    <html lang="en" id="facebook"> 
     <head> 
     <title>Facebook | Error</title> 
     <meta charset="utf-8"> 
     <meta http-equiv="cache-control" content="no-cache"> 
     <meta http-equiv="cache-control" content="no-store"> 
     <meta http-equiv="cache-control" content="max-age=0"> 
     <meta http-equiv="expires" content="-1"> 
     <meta http-equiv="pragma" content="no-cache"> 
     <meta name="robots" content="noindex,nofollow"> 
     <style> 
     html, body { 
     color: #141823; 
     background-color: #e9eaed; 
     font-family: Helvetica, Lucida Grande, Arial, 
     Tahoma, Verdana, sans-serif; 
     margin: 0; 
     padding: 0; 
     text-align: center; 
     } 

     #header { 
     background: #3b5998 
     url('//static.xx.fbcdn.net/images/logo-fb-trans-92x20.png') 
     center 11px no-repeat; 
     border-bottom: 1px solid #133783; 
     display: block; 
     height: 38px; 
     position: relative; 
     } 

     h1 { 
     font-size: 18px; 
     } 

     p { 
     font-size: 13px; 
     } 

     #footer { 
     border-top: 1px solid #ddd; 
     color: #9197a3; 
     font-size: 12px; 
     padding: 5px 8px 6px 0; 
     } 
     </style> 
     </head> 
     <body> 
     <div> 
     <a id="header" href="//www.facebook.com/"></a> 
     </div> 
     <div id="core"> 
     <h1 id="sorry">Sorry, something went wrong.</h1> 
     <p id="promise"> 
     We're working on it and we'll get it fixed as soon as we can. 
     </p> 
     <p id="back-link"> 
     <a id="back" href="//www.facebook.com/">Go Back</a> 
     </p> 
     <div id="footer"> 
     Facebook 
     <span id="copyright"> 
     &copy; 2014 
     </span> 
     <span id="help-link"> 
     &#183; 
     <a id="help" href="//www.facebook.com/help/">Help Center</a> 
     </span> 
     </div> 
     </div> 
     <script> 
     document.getElementById('back').onclick = function() { 
     if (history.length > 1) { 
     history.back(); 
     return false; 
     } 
     }; 

     // Adjust the display based on the window size 
     if (window.innerHeight < 80 || window.innerWidth < 80) { 
     // Blank if window is too small 
     document.body.style.display = 'none'; 
     }; 
     if (window.innerWidth < 200 || window.innerHeight < 150) { 
     document.getElementById('header').style.background = '#3b5998'; 
     document.getElementById('header').style.height = '8px'; 
     document.getElementById('back-link').style.display = 'none'; 
     document.getElementById('help-link').style.display = 'none'; 
     }; 
     if (window.innerWidth < 200) { 
     document.getElementById('sorry').style.fontSize = '16px'; 
     }; 
     if (window.innerWidth < 150) { 
     document.getElementById('promise').style.display = 'none'; 
     }; 
     if (window.innerHeight < 150) { 
     document.getElementById('sorry').style.margin = '4px 0 0 0'; 
     document.getElementById('sorry').style.fontSize = '14px'; 
     document.getElementById('promise').style.display = 'none'; 
     }; 
     </script> 
     </body> 
    </html> 

错误:

    FacebookException{statusCode=400, errorType='null', errorMessage='null', errorCode=-1, errorSubcode=-1, version=2.2.2} 
        at facebook4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:179) 
        at facebook4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65) 
        at facebook4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:97) 
        at facebook4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:107) 
        at facebook4j.FacebookBaseImpl.getOAuthAccessToken(FacebookBaseImpl.java:233) 
        at com.xyz.facebook.login.FacebookCallback.execute(FacebookCallback.java:38) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
        at java.lang.reflect.Method.invoke(Method.java:483) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252) 
        at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167) 
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) 
        at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239) 
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239) 
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) 
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) 
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) 
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) 
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563) 
        at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) 
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) 
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) 
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) 
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) 
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526) 
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) 
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655) 
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277) 
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2381) 
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2370) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
        at java.lang.Thread.run(Thread.java:744)

最佳答案

它正在使用AppSecret Key空间,因此出现了此错误。 现在它对我有用

关于java - 使用 org.facebook4j 的 Facebook 身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28408233/

相关文章:

facebook - 为什么 Facebook Graph API 说我的帐户不活跃?

c# - 使用 Graph API 获取我 friend 的 friend

java - 线程同步中的 While 与 If

java - Java 中的可中断网络 I/O

java - Java 中的 For 循环和数组

xcode - Facebook API 快速检索好友列表

javascript - Facebook 使用哪种技术显示图像?

java - 将 C++ 类转换为等效的 Java 类

javascript - Facebooker Connect 和 Safari 4

ios - 为什么 facebook 在 iOS 中返回最友好的 0?如何检索 fb 好友列表并将其存储以进行解析?