Java 使用Facebook4j请求Facebook api时失败
我正在尝试使用Facebook4J开发Facebook API。通过flow从facebook获得访问令牌是成功的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
@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证明->设置为禁用