伸手系列-脸书facebook登录回验-java
记得修改自己在fb后台配置的ACCESS_TOKEN
public class FaceBookLogin {
protected static Logger logger= LoggerFactory.getLogger(FaceBookLogin.class);
private final static String ACCESS_TOKEN ="3934517320%7C6cc038bdf81153129676c3def9";
private final static String API_URL = "https://graph.facebook.com/debug_token?access_token=";
// private static HttpClient httpClient = Http.createHttpClient(200, 200, 2000, 2000, 2000);
public static Boolean check(String token,String userId)
{
CloseableHttpClient httpclient = HttpClients.createDefault();
JSONObject resultJson = new JSONObject();
Boolean result=false;
try {
String url=API_URL+ACCESS_TOKEN+"&input_token="+token;
HttpGet httpPost = new HttpGet(url);
// RequestConfig config=RequestConfig.custom()
// .set 增加静态方法 配置 超时时间
CloseableHttpResponse response = httpclient.execute(httpPost);
try {
HttpEntity entity = response.getEntity();
if (response.getStatusLine().getStatusCode() == 200) {
String resp = EntityUtils.toString(entity);
JSONObject data = JSONObject.parseObject(resp).getJSONObject("data");
result=data.getBoolean("is_valid");
if(data.getString("user_id").equals(userId))
{
result=true;
}
else
result=false;
} else {
resultJson.put("facebook login code", response.getStatusLine().getStatusCode());
logger.error("[facebook login错误码] :" + response.getStatusLine().getStatusCode());
logger.error("[facebook login请求地址] :" + url);
result=false;
}
} finally {
response.close();
}
} catch (ClientProtocolException e) {
logger.error("[异常] :", e.getMessage());
} catch (IOException e) {
logger.error("[异常] :", e.getMessage());
} finally {
try {
httpclient.close();
} catch (IOException e) {
logger.error("[httpclient 关闭异常] : ", e.getMessage());
}
}
return result;
}
}