How do I implement a facebook PHP Login as a fallback to single sign on with FBML -


i have working single sign on facebook works (most of time) whatever reason error. i'm trying write fallback method uses php sdk login directs facebook , forwards url, once facebook redirects page can see session data in url under $_get['session'] json string, need figure out how use string make valid api calls.

    <?php  require_once "facebook_sdk.php";  $facebook = new facebook(array('appid' => '123','secret' => '456','cookie' => true,));  $session = null; $_fb_profile = null;  $session = $facebook->getsession();  //get links login/logout $loginurl = $facebook->getloginurl(); $logouturl = $facebook->getlogouturl();  if($session){     try {          $facebook_id = $facebook->getuser();         $_fb_profile = $facebook->api('/me'); //if not null valid session          $facebook_name = $_fb_profile['name'];         $facebook_link = $_fb_profile['link'];       }     catch (facebookapiexception $e) {         echo $e;     } } //there not valid session though single sign on fbml button, try checking php login if(!$_fb_profile){      $session = $_get['session'];//json string facebook     $session = json_decode($session);//make array      try {         $facebook->setsession($session,true);//need set session how $_get['session']          $facebook_id = $facebook->getuser();         $_fb_profile = $facebook->api('/me');          $facebook_name = $_fb_profile['name'];         $facebook_link = $_fb_profile['link'];       }     catch (facebookapiexception $e) {         die($e); //getting invalid oauth access token     } }  ?> <div id="fb-root"></div>     <script>       window.fbasyncinit = function() {         fb.init({           appid   : '<?php echo $facebook->getappid(); ?>',           session : <?php echo json_encode($session); ?>, // don't refetch session when php has           status  : true, // check login status           cookie  : true, // enable cookies allow server access session           xfbml   : true // parse xfbml         });          // whenever user logs in, refresh page         fb.event.subscribe('auth.login', function() {           window.location.reload();         });       };        (function() {         var e = document.createelement('script');         e.src = document.location.protocol + '//connect.facebook.net/en_us/all.js';         e.async = true;         document.getelementbyid('fb-root').appendchild(e);       }());     </script> <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />  </head> <body>      <?php if(!$session || !$_fb_profile){        //user not logged in show fbml button , php login link     echo "<fb:login-button perms='email,user_birthday,user_education_history,read_friendlists,publish_stream'></fb:login-button>     <p class='small' style='float:right;'>having trouble? try  <a href='$loginurl'>logging in here</a></p>"; } else{     //user has logged in     echo "you logged facebook <a href='$facebook_link'>$facebook_name</a>";  }?>  </body> </html> 


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -