package com.rau.evoting.utils; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class FacebookService { private static FacebookService fbService; private FacebookService() { } public static FacebookService getInstance() { if(fbService == null) { fbService = new FacebookService(); } return fbService; } public String getAccessToken(String code, String page) { String accessToken = null; HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("https://graph.facebook.com/oauth/access_token"); try { String[][] parameters = { { "client_id", "515272745187738" }, { "client_secret", "e37f4bd94fc533c364ad291a2ecbba09" }, { "redirect_uri", "http://localhost:8080/Evoting/" + page }, { "code", code } }; List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); for (int i = 0; i < parameters.length; i++) { nameValuePairs.add(new BasicNameValuePair(parameters[i][0], parameters[i][1])); } post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse resp = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(resp .getEntity().getContent())); String message = ""; String lineData; while ((lineData = rd.readLine()) != null) { message += lineData; System.out.println(lineData); } String token = null; // Add more safety traps String[] params = message.split("&"); if (params != null) { for (int i = 0; i < params.length; i++) { if (params[i].contains("access_token")) { String[] B = params[i].split("="); if (B != null) { token = B[1]; } break; } } } else { throw new Exception("no params"); } accessToken = token; } catch (Exception e) { e.printStackTrace(); } return accessToken; } /* private int retrieveToken(String code) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("https://graph.facebook.com/oauth/access_token"); try { String[][] parameters = { {"client_id", "515272745187738"}, {"client_secret", "e37f4bd94fc533c364ad291a2ecbba09"}, {"redirect_uri", "http://localhost:8080/Evoting/Elections.xhtml"}, {"code", code} }; List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); for (int i = 0; i < parameters.length; i++) { nameValuePairs.add (new BasicNameValuePair(parameters[i][0], parameters[i][1])); } post.setEntity( new UrlEncodedFormEntity(nameValuePairs)); HttpResponse resp = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader( resp.getEntity().getContent())); String message = ""; String lineData; while ((lineData = rd.readLine()) != null) { message += lineData; System.out.println(lineData); } String token = null; // Add more safety traps String[] params = message.split("&"); if (params != null) { for (int i = 0; i < params.length; i++) { if (params[i].contains("access_token")) { String[] B = params[i].split("="); if (B != null) { token = B[1]; } break; } } } else { return 0; } accessToken = token; return 1; } catch (Exception e) { return 0; } }*/ }