PHP Facebook Code

Embed Size (px)

Citation preview

  • 7/26/2019 PHP Facebook Code

    1/20

    1

    PHPFacebookCode

    Tag

    Friends

  • 7/26/2019 PHP Facebook Code

    2/20

    2

    }

    //validatinguseraccesstoken

    try{

    $user=$fb

    >get('/me');

    $user=$user>getGraphNode()>asArray();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    session_destroy();

    //ifaccesstokenisinvalidorexpiredyoucansimplyredirecttologinpageusingheader()function

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //gettingallfriendsofuser

    $friends=$fb>get('/me/taggable_friends');

    $friends=$friends>getGraphEdge()>asArray();

    //gettingrandomfriendoutofallfriends

    $totalFriends=count($friends);

    $random=rand(0,$totalFriends);

    //postingonfacebookandtaggingfriendwithit

    $post=$fb>post('/me/feed',array('message'=>'mymessage','tags'=>$friends[$random]['id']));

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else{

    //replaceyourwebsiteURLsameasaddedinthedevelopers.facebook.com/appse.g.ifyouusedhttpinsteadofhttpsand

    youusednonwwwversionorwwwversionofyourwebsitethenyoumustaddthesamehere

    $loginUrl=$helper

    >getLoginUrl(APP_URL,

    $permissions);

    echo'LoginwithFacebook!';

    }

    Check

    Declined/Granted

    Permissions

  • 7/26/2019 PHP Facebook Code

    3/20

    3

    }

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    if(isset($accessToken)){

    if(isset($_SESSION['facebook_access_token'])){

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }else{

    //gettingshortlivedaccesstoken

    $_SESSION['facebook_access_token']=(string)$accessToken;

    //OAuth2.0clienthandler

    $oAuth2Client=$fb>getOAuth2Client();

    //Exchangesashortlivedaccesstokenforalonglivedone

    $longLivedAccessToken=$oAuth2Client>getLongLivedAccessToken($_SESSION['facebook_access_token']);

    $_SESSION['facebook_access_token']=(string)$longLivedAccessToken;

    //settingdefaultaccesstokentobeusedinscript

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }

    //redirecttheuserbacktothesamepageifithas"code"GETvariable

    if(isset($_GET['code'])){

    header('Location:./');

    }

    //gettingdeclinedandgrantedpermissions

    $permissions=$fb>get('/me/permissions');

    $permissions=$permissions>getGraphEdge()>asArray();

    //printingdeclinedandgrantedpermission

    echo"";

    print_r($permissions);

    echo"";

    //makingnewloginURLwithdeclinedpermissionsattachedtoit

    foreach($permissionsas$key){

    if($key['status']=='declined'){

    $declined[]=$key['permission'];

    $loginUrl=$helper

    >getLoginUrl('http://sohaibilyas.com/APP_DIR/',

    $declined);

    echo'LoginwithFacebook!';

    }

    }

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else{

    //replaceyourwebsiteURLsameasaddedinthedevelopers.facebook.com/appse.g.ifyouusedhttpinsteadofhttpsand

    youusednonwwwversionorwwwversionofyourwebsitethenyoumustaddthesamehere

    $loginUrl=$helper>getLoginUrl('http://sohaibilyas.com/APP_DIR/',$permissions);

    echo'LoginwithFacebook!';

    }

  • 7/26/2019 PHP Facebook Code

    4/20

    4

    Get

    Basic

    Page

    Info

  • 7/26/2019 PHP Facebook Code

    5/20

    5

    $profile_request=$fb>get('/me');

    $profile=$profile_request>getGraphNode()>asArray();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graph

    returned

    an

    error:

    '.$e

    >getMessage();

    session_destroy();

    //redirectinguserbacktoapploginpage

    header("Location:./");

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //getbasicpageinfo

    $page=$fb>get('/funnydemons?fields=username,picture.width(500),cover,');

    $page=$page>getGraphNode()>asArray();

    echo"";

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else{

    //replaceyourwebsiteURLsameasaddedinthedevelopers.facebook.com/appse.g.ifyouusedhttpinsteadofhttpsand

    youusednonwwwversionorwwwversionofyourwebsitethenyoumustaddthesamehere

    $loginUrl=$helper>getLoginUrl('http://sohaibilyas.com/APP_DIR/',$permissions);

    echo'LoginwithFacebook!';

    }

    Get

    Likes,

    Data,

    Posts,

    Photos

  • 7/26/2019 PHP Facebook Code

    6/20

    6

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    if(isset($accessToken)){

    if(isset($_SESSION['facebook_access_token'])){

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }else{

    //gettingshortlivedaccesstoken

    $_SESSION['facebook_access_token']=(string)$accessToken;

    //OAuth2.0clienthandler

    $oAuth2Client=$fb>getOAuth2Client();

    //Exchangesashortlivedaccesstokenforalonglivedone

    $longLivedAccessToken=$oAuth2Client>getLongLivedAccessToken($_SESSION['facebook_access_token']);

    $_SESSION['facebook_access_token']=(string)$longLivedAccessToken;

    //settingdefaultaccesstokentobeusedinscript

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }

    //redirecttheuserbacktothesamepageifithas"code"GETvariable

    if(isset($_GET['code'])){

    header('Location:./');

    }

    //validatinguseraccesstoken

    try{

    $user=$fb

    >get('/me');

    $user=$user>getGraphNode()>asArray();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    session_destroy();

    //ifaccesstokenisinvalidorexpiredyoucansimplyredirecttologinpageusingheader()function

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //gettinglikesdataofrecent100postsbyuser

    $getPostsLikes=$fb

    >get('/me/posts?fields=likes.limit(1000){name,id}&limit=100');

    $getPostsLikes=$getPostsLikes>getGraphEdge()>asArray();

    //printinglikesdataasperrequirements

    foreach($getPostsLikesas$key){

    if(isset($key['likes'])){

    echocount($key['likes']).'
    ';

    foreach($key['likes']as$key){

    echo$key['name'].'
    ';

    }

    }

    }

    //gettinglikesdataofrecent100photosbyuser

  • 7/26/2019 PHP Facebook Code

    7/20

    7

    $getPhotosLikes=$fb>get('/me/photos?fields=likes.limit(1000){name,id}&limit=100&type=uploaded');

    $getPhotosLikes=$getPhotosLikes>getGraphEdge()>asArray();

    //printinglikesdataasperrequirements

    foreach($getPhotosLikes

    as

    $key)

    {

    if(isset($key['likes'])){

    echocount($key['likes']).'
    ';

    foreach($key['likes']as$key){

    echo$key['name'].'
    ';

    }

    }

    }

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else{

    //replaceyourwebsiteURLsameasaddedinthedevelopers.facebook.com/appse.g.ifyouusedhttpinsteadofhttpsand

    youusednonwwwversionorwwwversionofyourwebsitethenyoumustaddthesamehere

    $loginUrl=$helper>getLoginUrl(APP_URL,$permissions);

    echo'LoginwithFacebook!';

    }

    Get

    List

    of

    Friends

    Names

  • 7/26/2019 PHP Facebook Code

    8/20

    8

    //OAuth2.0clienthandler

    $oAuth2Client=$fb>getOAuth2Client();

    //Exchanges

    ashort

    lived

    access

    token

    for

    along

    lived

    one

    $longLivedAccessToken=$oAuth2Client>getLongLivedAccessToken($_SESSION['facebook_access_token']);

    $_SESSION['facebook_access_token']=(string)$longLivedAccessToken;

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }

    //validatingtheaccesstoken

    try{

    $request=$fb>get('/me');

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    if($e>getCode()==190){

    unset($_SESSION['facebook_access_token']);

    $helper=$fb>getRedirectLoginHelper();

    $loginUrl=$helper>getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/',$permissions);

    echo"window.top.location.href='".$loginUrl."'";

    }

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //getlistoffriends'names

    try{

    $requestFriends=$fb>get('/me/taggable_friends?fields=name&limit=100');

    $friends=$requestFriends

    >getGraphEdge();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //ifhavemorefriendsthan100aswedefinedthelimitaboveonlineno.68

    if($fb>next($friends)){

    $allFriends=array();

    $friendsArray=$friends>asArray();

    $allFriends=array_merge($friendsArray,

    $allFriends);

    while($friends=$fb>next($friends)){

    $friendsArray=$friends>asArray();

    $allFriends=array_merge($friendsArray,$allFriends);

    }

    foreach($allFriendsas$key){

    echo$key['name']."
    ";

    }

    echocount($allfriends);

    }else{

    $allFriends=$friends>asArray();

    $totalFriends=count($allFriends);

    foreach($allFriendsas$key){

    echo$key['name']."
    ";

  • 7/26/2019 PHP Facebook Code

    9/20

    9

    }

    }

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else

    {

    $helper=$fb>getRedirectLoginHelper();

    $loginUrl=$helper>getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/',$permissions);

    echo"window.top.location.href='".$loginUrl."'";

    }

    Get

    List

    of

    Liked

    Pages

  • 7/26/2019 PHP Facebook Code

    10/20

    10

    //validatingtheaccesstoken

    try{

    $request=$fb>get('/me');

    }catch(Facebook\Exceptions\FacebookResponseException

    $e)

    {

    //WhenGraphreturnsanerror

    if($e>getCode()==190){

    unset($_SESSION['facebook_access_token']);

    $helper=$fb>getRedirectLoginHelper();

    $loginUrl=$helper>getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/',$permissions);

    echo"window.top.location.href='".$loginUrl."'";

    exit;

    }

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //getlistofpageslikedbyuser

    try{

    $requestLikes=$fb>get('/me/likes?limit=100');

    $likes=$requestLikes>getGraphEdge();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    $totalLikes=array();

    if($fb>next($likes)){

    $likesArray=$likes>asArray();

    $totalLikes=array_merge($totalLikes,$likesArray);

    while($likes=$fb>next($likes)){

    $likesArray=$likes>asArray();

    $totalLikes=array_merge($totalLikes,$likesArray);

    }

    }else{

    $likesArray=$likes>asArray();

    $totalLikes=array_merge($totalLikes,$likesArray);

    }

    //printingdataonscreen

    foreach($totalLikesas$key){

    echo$key['name']

    .'
    ';

    }

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else{

    $helper=$fb>getRedirectLoginHelper();

    $loginUrl=$helper>getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/',$permissions);

    echo"window.top.location.href='".$loginUrl."'";

    }

  • 7/26/2019 PHP Facebook Code

    11/20

    11

    Get

    More

    User

    Info

  • 7/26/2019 PHP Facebook Code

    12/20

    12

    $profile_request=$fb>get('/me?fields=name,first_name,last_name,birthday,website,location');

    $profile=$profile_request>getGraphNode()>asArray();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graph

    returned

    an

    error:

    '.$e

    >getMessage();

    session_destroy();

    //redirectinguserbacktoapploginpage

    header("Location:./");

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //printing$profilearrayonthescreenwhichholdsthebasicinfoaboutuser

    echo$profile['birthday']>format('dmY');

    echo$profile['website'];

    echo$profile['location']['name'];

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['localhost_app_token']

    }else{

    //replaceyourwebsiteURLsameasaddedinthedevelopers.facebook.com/appse.g.ifyouusedhttpinsteadofhttpsand

    youusednonwwwversionorwwwversionofyourwebsitethenyoumustaddthesamehere

    $loginUrl=$helper>getLoginUrl('http://sohaibilyas.com/fbapp/',$permissions);

    echo'LoginwithFacebook!';

    }

    Get

    User

    Profile

    Picture

  • 7/26/2019 PHP Facebook Code

    13/20

    13

    }

    if(isset($accessToken)){

    if(isset($_SESSION['facebook_access_token']))

    {

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }else{

    $_SESSION['facebook_access_token']=(string)$accessToken;

    //OAuth2.0clienthandler

    $oAuth2Client=$fb>getOAuth2Client();

    //Exchangesashortlivedaccesstokenforalonglivedone

    $longLivedAccessToken=$oAuth2Client>getLongLivedAccessToken($_SESSION['facebook_access_token']);

    $_SESSION['facebook_access_token']=(string)$longLivedAccessToken;

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }

    //validatingtheaccesstoken

    try{

    $request=$fb>get('/me');

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    if($e>getCode()==190){

    unset($_SESSION['facebook_access_token']);

    $helper=$fb>getRedirectLoginHelper();

    $loginUrl=$helper>getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/',$permissions);

    echo"window.top.location.href='".$loginUrl."'";

    exit;

    }

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //When

    validation

    fails

    or

    other

    local

    issues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //gettingprofilepictureoftheuser

    try{

    $requestPicture=$fb>get('/me/picture?redirect=false&height=300');//gettinguserpicture

    $requestProfile=$fb>get('/me');//gettingbasicinfo

    $picture=$requestPicture>getGraphUser();

    $profile=$requestProfile>getGraphUser();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException

    $e)

    {

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //showingpictureonthescreen

    echo"";

    //savingpicture

    $img=__DIR__.'/'.$profile['id'].'.jpg';

    file_put_contents($img,file_get_contents($picture['url']));

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

  • 7/26/2019 PHP Facebook Code

    14/20

    14

    }else{

    $helper=$fb>getRedirectLoginHelper();

    $loginUrl=$helper>getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/');

    echo"window.top.location.href='".$loginUrl."'";

    }

    Login

    on

    Website,

    Get

    Basic

    Info

  • 7/26/2019 PHP Facebook Code

    15/20

    15

    //redirecttheuserbacktothesamepageifithas"code"GETvariable

    if(isset($_GET['code'])){

    header('Location:./');

    }

    //gettingbasicinfoaboutuser

    try{

    $profile_request=$fb>get('/me?fields=name,first_name,last_name,email');

    $profile=$profile_request>getGraphNode()>asArray();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    session_destroy();

    //redirectinguserbacktoapploginpage

    header("Location:./");

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //printing$profilearrayonthescreenwhichholdsthebasicinfoaboutuser

    print_r($profile);

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else{

    //replaceyourwebsiteURLsameasaddedinthedevelopers.facebook.com/appse.g.ifyouusedhttpinsteadofhttpsand

    youusednonwwwversionorwwwversionofyourwebsitethenyoumustaddthesamehere

    $loginUrl=$helper>getLoginUrl('https://sohaibilyas.com/fbapp/',$permissions);

    echo'LoginwithFacebook!';

    }

    Search

  • 7/26/2019 PHP Facebook Code

    16/20

    16

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    if(isset($accessToken)){

    if(isset($_SESSION['facebook_access_token'])){

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }else{

    //gettingshortlivedaccesstoken

    $_SESSION['facebook_access_token']=(string)$accessToken;

    //OAuth2.0clienthandler

    $oAuth2Client=$fb>getOAuth2Client();

    //Exchangesashortlivedaccesstokenforalonglivedone

    $longLivedAccessToken=$oAuth2Client>getLongLivedAccessToken($_SESSION['facebook_access_token']);

    $_SESSION['facebook_access_token']=(string)$longLivedAccessToken;

    //settingdefaultaccesstokentobeusedinscript

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }

    //redirecttheuserbacktothesamepageifithas"code"GETvariable

    if(isset($_GET['code'])){

    header('Location:./');

    }

    //validatinguseraccesstoken

    try{

    $user=$fb>get('/me');

    $user=$user>getGraphNode()>asArray();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    session_destroy();

    //ifaccesstokenisinvalidorexpiredyoucansimplyredirecttologinpageusingheader()function

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //typecanbeuser,group,pageorevent

    $search=$fb>get('/search?q=programming&type=page');

    $search=$search>getGraphEdge()>asArray();

    foreach($searchas$key){

    echo$key['name'].'
    ';

    }

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else{

    //replaceyourwebsiteURLsameasaddedinthedevelopers.facebook.com/appse.g.ifyouusedhttpinsteadofhttpsand

    youusednonwwwversionorwwwversionofyourwebsitethenyoumustaddthesamehere

  • 7/26/2019 PHP Facebook Code

    17/20

    17

    $loginUrl=$helper>getLoginUrl(APP_URL,$permissions);

    echo'LoginwithFacebook!';

    }

    Send

    Html

    Form

    Data

  • 7/26/2019 PHP Facebook Code

    18/20

    18

    header('Location:./');

    }

    //gettingbasicinfoaboutuser

    try{

    $profile_request=$fb>get('/me?fields=name,first_name,last_name');

    $profile=$profile_request>getGraphNode()>asArray();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    session_destroy();

    //redirectinguserbacktoapploginpage

    header("Location:./");

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    if(isset($_POST['message'])){

    $post=$fb>post('/me/feed',array('message'=>$_POST['message']));

    $post=$post>getGraphNode()>asArray();

    echo$post['id'];

    }

    ?>

    Message:


  • 7/26/2019 PHP Facebook Code

    19/20

    19

    try{

    if(isset($_SESSION['facebook_access_token'])){

    $accessToken=$_SESSION['facebook_access_token'];

    }else{

    $accessToken=$helper

    >getAccessToken();

    }

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    exit;

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    if(isset($accessToken)){

    if(isset($_SESSION['facebook_access_token'])){

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }else{

    $_SESSION['facebook_access_token']=(string)$accessToken;

    //OAuth2.0clienthandler

    $oAuth2Client=$fb>getOAuth2Client();

    //Exchangesashortlivedaccesstokenforalonglivedone

    $longLivedAccessToken=$oAuth2Client>getLongLivedAccessToken($_SESSION['facebook_access_token']);

    $_SESSION['facebook_access_token']=(string)$longLivedAccessToken;

    $fb>setDefaultAccessToken($_SESSION['facebook_access_token']);

    }

    //validatingtheaccesstoken

    try{

    $request=$fb>get('/me');

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    if($e>getCode()==190){

    unset($_SESSION['facebook_access_token']);

    $helper=$fb>getRedirectLoginHelper();

    $loginUrl=$helper>getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/',$permissions);

    echo"window.top.location.href='".$loginUrl."'";

    exit;

    }

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'Facebook

    SDK

    returned

    an

    error:

    '.$e

    >getMessage();

    exit;

    }

    //gettingbasicinfoaboutuser

    try{

    $profile_request=$fb>get('/me?fields=name,first_name,last_name,email');

    $profile=$profile_request>getGraphNode()>asArray();

    }catch(Facebook\Exceptions\FacebookResponseException$e){

    //WhenGraphreturnsanerror

    echo'Graphreturnedanerror:'.$e>getMessage();

    unset($_SESSION['facebook_access_token']);

    echo"window.top.location.href='https://apps.facebook.com/APP_NAMESPACE/'";

    exit;

  • 7/26/2019 PHP Facebook Code

    20/20

    20

    }catch(Facebook\Exceptions\FacebookSDKException$e){

    //Whenvalidationfailsorotherlocalissues

    echo'FacebookSDKreturnedanerror:'.$e>getMessage();

    exit;

    }

    //sendingnotificationtouser

    $sendNotif=$fb>post('/'.$profile['id'].'/notifications',array('href'=>'?true=43','template'=>'clickhereformore

    information!'),'APP_ACCESS_TOKEN');

    //Nowyoucanredirecttoanotherpageandusetheaccesstokenfrom$_SESSION['facebook_access_token']

    }else{

    $helper=$fb>getRedirectLoginHelper();

    $loginUrl=$helper>getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/',$permissions);

    echo"window.top.location.href='".$loginUrl."'";

    }