layout = 'facebook';
}
function index()
{
$app_id = '1539535046303692';
$app_secret = '0f0e28f812b7c330c57be7ec8024a760';
$app_namespace = 'expensecount';
App::import('vendor', 'Facebook'.DS.'Entities'.DS.'AccessToken');
App::import('vendor', 'Facebook'.DS.'FacebookSession');
App::import('vendor', 'Facebook'.DS.'FacebookRequest');
App::import('vendor', 'Facebook'.DS.'FacebookResponse');
App::import('vendor', 'Facebook'.DS.'FacebookSDKException');
App::import('vendor', 'Facebook'.DS.'Entities'.DS.'SignedRequest');
App::import('vendor', 'Facebook'.DS.'FacebookSignedRequestFromInputHelper');
App::import('vendor', 'Facebook'.DS.'FacebookRedirectLoginHelper');
App::import('vendor', 'Facebook'.DS.'FacebookCanvasLoginHelper');
App::import('vendor', 'Facebook'.DS.'GraphObject');
App::import('vendor', 'Facebook'.DS.'GraphUser');
App::import('vendor', 'Facebook'.DS.'GraphSessionInfo');
App::import('vendor', 'Facebook'.DS.'HttpClients'.DS.'FacebookHttpable');
App::import('vendor', 'Facebook'.DS.'HttpClients'.DS.'FacebookCurl');
App::import('vendor', 'Facebook'.DS.'HttpClients'.DS.'FacebookCurlHttpClient');
// Facebook APP keys
FacebookSession::setDefaultApplication($app_id,$app_secret);
// Helper for fb canvas authentication
$helper = new FacebookCanvasLoginHelper();
// see if $_SESSION exists
if (isset($_SESSION) && isset($_SESSION['fb_token']))
{
// create new fb session from saved fb_token
$session = new FacebookSession($_SESSION['fb_token']);
// validate the fb_token to make sure it's still valid
try
{
$session->validate();
}
catch (Exception $e)
{
// catch any exceptions
$session = null;
}
}
else
{
// no $_SESSION exists
try
{
// create fb session
$session = $helper->getSession();
}
catch(FacebookRequestException $ex)
{
// When Facebook returns an error
//print_r($ex);
$session = null;
}
catch(\Exception $ex)
{
// When validation fails or other local issues
//print_r($ex);
$session = null;
}
}
// check if 1 of the 2 methods above set $session
if (isset($session))
{
$request = new FacebookRequest( $session, 'GET', '/me/friends' );
try{
$response = $request->execute();
$graphObject = $response->getGraphObject();
//echo print_r( $graphObject, 1 );
/* $fid = $graphObject->getProperty('id');// echo $fid;
$femail = $graphObject->getProperty('email')// echo $femail;
$ffirst_name = $graphObject->getProperty('name ');// echo $ffirst_name; */
//$facebook_id = $graphObject->getProperty('id');
//$request = new FacebookRequest( $session, 'GET', '/'.$facebook_id.'/friends?access_token='.$session->getToken() );
// $response = $request->execute();
//$graphObject = $response->getGraphObject();
//var_dump($graphObject);exit;
$expenseIdArray = $this->Participant->getExpenseIdListByFacebookId($facebook_id);
if(!empty($expenseIdArray)){
$data = $this->Expense->findExpenseInfoByIds($expenseIdArray);
if(!empty($data)){
$expenseList = $data["expenseList"];
$participantList = $data["participantList"];
foreach($expenseList as $key=>$value){
$finalResult[$key]["unique_url"] = $value["Expense"]["unique_url"];
$finalResult[$key]["title"] = $value["Expense"]["title"];
$finalResult[$key]["currency"] = $value["Expense"]["currency"];
$finalResult[$key]["description"] = $value["Expense"]["description"];
$finalResult[$key]["create_date"] = $value["Expense"]["create_date"];
$finalResult[$key]["expense_type"] = $value["Expense"]["expense_type"];
$finalResult[$key]["participantName"] = $this->getParticipantName($value["Expense"]["id"],$participantList);
}
}
}
$first_name = $graphObject->getProperty('first_name');
if(strlen($first_name) > 15){
$first_name = substr($first_name,0,15);
}
$this->set("expenseList",$finalResult);
$this->set("facebook_token",$session->getToken());
$this->set("facebook_name",$first_name);
//$this->Session->write("aaa",$session->getToken());
//echo "
";
//echo "id:".$facebook_id;
//echo "Session
"; // print_r($session->getToken());exit; //echo "
"; // echo "Name:".$graphObject->getProperty('first_name'); //echo "
"; //echo "Email:".$graphObject->getProperty('email'); //get list of expense info based on facebook ID $this->render('index'); /* echo $fid; echo "===========
"; echo $femail; echo "===========
"; echo $ffirst_name; echo "===========
"; */ } catch (Exception $ex) { // echo $ex->getMessage(); } } else { $helper = new FacebookRedirectLoginHelper("https://apps.facebook.com/expensecount"); $auth_url = $helper->getLoginUrl(); echo ""; //session_destroy(); // We use javascript because of facebook bug https://developers.facebook.com/bugs/722275367815777 // Fix from here: http://stackoverflow.com/a/23685616/796443 // IF bug is fixed this line won't be needed, as app will ask for permissions onload without JS redirect. //$oauthJS = "window.top.location = 'https://www.facebook.com/dialog/oauth?client_id=$app_id&redirect_uri=https://apps.facebook.com/$app_namespace/&scope=user_location,email';"; } //App::import('vendor', 'Facebook'.DS.'FacebookRequest'); /* App::import('vendor', 'Facebook'.DS.'FacebookSDKException'); App::import('vendor', 'Facebook'.DS.'FacebookRequestException'); App::import('vendor', 'Facebook'.DS.'GraphObject'); App::import('vendor', 'Facebook'.DS.'GraphUser'); App::import('vendor', 'Facebook'.DS.'FacebookSession'); //$Facebook = new FacebookSession('942666942429370','d41f9f9dc531dcf2f6de520ca1111a71'); FacebookSession::setDefaultApplication('942666942429370', 'd41f9f9dc531dcf2f6de520ca1111a71'); */ //collect facebook data and set it to input form //FacebookSession::setDefaultApplication('', ''); /* App::import('Vendor', 'FacebookRedirectLoginHelper', array('file' =>'FacebookRedirectLoginHelper.php')); App::import('Vendor', 'FacebookSDKException', array('file' =>'FacebookSDKException.php')); App::import('Vendor', 'FacebookSession', array('file' => 'FacebookSession.php')); App::import('Vendor', 'FacebookRequest', ['file' =>'FacebookRequest.php']); App::import('Vendor', 'FacebookRequestException', ['file' =>'FacebookRequestException.php']); $helper = new \Facebook\FacebookRedirectLoginHelper(Router::url('/', true), "942666942429370", $secret); */ $data["User"]["name"] = "Rajib Deb"; //fb $data["User"]["phone"] = "0162005136"; // fb $data["User"]["email"] = "test@gmail.com";//fb /* if($session) { try { $user_profile = (new FacebookRequest( $session, 'GET', '/me' ))->execute()->getGraphObject(GraphUser::className()); echo "Name: " . $user_profile->getName(); } catch(FacebookRequestException $e) { echo "Exception occured, code: " . $e->getCode(); echo " with message: " . $e->getMessage(); } } else { echo "NO session"; } */ $this->request->data = $data; } public function getParticipantName($expenseId,$participantList){ $participantName = ""; if(!empty($participantList)){ foreach($participantList as $key=>$value){ if(trim($value["Participant"]["expense_id"]) == trim($expenseId)){ $participantName = $value["Participant"]["name"]; } } } return $participantName; } public function createDonor() { $data["name"] = $this->data["User"]["name"]; //fb $data["phone"] = $this->data["User"]["phone"]; // fb $data["email"] = $this->data["User"]["email"];//fb $data["bloodgroup"] = $this->data["User"]["bloodgroup"]; //input // A+=1,B+=2,O+=3,AB+=4,A-=5,B-=6,O-=7,AB-=8 $data["birth_date"] = $this->data["User"]["birth_date"]; $data["password"] = ""; // $data["from_facebook"] = 1; $data["district"] = $this->data["User"]["district"]; $data["area"] = $this->data["User"]["district"]; $data["facebook_profile"] = $this->data["User"]["facebook_profile"]; $data["last_donate_date"] = $this->data["User"]["last_donate_date"];; $this->loadModel('User'); $status = $this->User->createUser($data); if($status == true){ echo __("LBL_DATA_SAVED"); //echo $unique_url; //$this->Session->write('Config.language', 'ind'); //$this->render('index'); } else { echo __("LBL_DATA_INSERTION_FAILED"); } } } ?>