Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 使用Facebook4j请求Facebook api时失败_Java_Facebook_Access Token - Fatal编程技术网

Java 使用Facebook4j请求Facebook api时失败

Java 使用Facebook4j请求Facebook api时失败,java,facebook,access-token,Java,Facebook,Access Token,我正在尝试使用Facebook4J开发Facebook API。通过flow从facebook获得访问令牌是成功的 @RequestMapping(value="biztopia.facebook.redirectLogin.do") public void redirectLogin(ModelMap model, HttpServletRequest request, HttpServletResponse response, HttpSession session) { Stri

我正在尝试使用Facebook4J开发Facebook API。通过flow从facebook获得访问令牌是成功的

@RequestMapping(value="biztopia.facebook.redirectLogin.do")
public void redirectLogin(ModelMap model, HttpServletRequest request, HttpServletResponse response, HttpSession session) {

    String code = request.getParameter("code");     
    Facebook facebook = (Facebook) request.getSession().getAttribute("facebook");
    String oauthCode = request.getParameter("code");

    try {
        facebook.getOAuthAccessToken(oauthCode);            
        AccessToken token = facebook.getOAuthAccessToken();             
        response.sendRedirect("biztopia.facebook.requestUserInfo.do");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }        
}


@RequestMapping(value="biztopia.facebook.requestUserInfo.do")
public void requestUserInfo(ModelMap model, HttpServletRequest request, HttpServletResponse response, HttpSession session) {

    Facebook facebook = (Facebook) request.getSession().getAttribute("facebook");               
    try {           
        User user = facebook.getMe();
    }catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
接收到的异常消息作为流

FacebookException{statusCode=400,response=HttpResponse{statusCode=400,responseAsString={“错误”:{“消息”:“来自服务器的API调用需要appsecret_证明参数”,“类型”:“GraphMethodException”,“代码”:100}” ,is=sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@446f4515,streamConsumed=true},errorType='GraphMethodException',errorMessage='API来自服务器的调用需要一个appsecret\u-proof参数',errorCode=100,errorSubcode=-1} 位于facebook4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:189) 位于facebook4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65) 位于facebook4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:93) 在facebook4j.facebookinpl.get(facebookinpl.java:2431) 在facebook4j.facebookinpl.getMe(facebookinpl.java:105) 在facebook4j.facebookinpl.getMe(facebookinpl.java:101) 在biztopia.facebook.web.FacebookController.requestUserInfo(FacebookController.java:292)上,我找到了解决方案。 这就是在调用API时将appsecret_proof参数附加为“{access_token value}$appsecret_proof={appsecret_proof value}”

如果您不想附加appsecret\u-proof参数,则可以在应用程序管理站点上将设置更改为no use appsecret\u-proof参数。 管理站点菜单正在设置>高级>服务器API调用需要AppSecret证明->设置为禁用。

我找到了解决方案。 这就是在调用API时将appsecret_proof参数附加为“{access_token value}$appsecret_proof={appsecret_proof value}”

如果您不想附加appsecret\u-proof参数,则可以在应用程序管理站点上将设置更改为no use appsecret\u-proof参数。 管理站点菜单正在设置>高级>服务器API调用需要AppSecret证明->设置为禁用