facebook - Get User-ID not working sometimes? -


i having issue app made recently. voting app supposed allow voting once per day every user. taking user id , placing every user-id in database, userid = 0 , have no idea why that. getting browser info aswell wanted check might browser related happened on both mozilla , ie.

here code below if helps.

index.php (code use nonfans)

<?php header('p3p:cp="idc dsp cor adm devi taii psa psd ivai ivdi coni our ind cnt"');?> <?php  require 'facebook.php'; $app_id = "xxx"; $app_secret = "xxx"; // create our application instance (replace appid , secret). $facebook = new facebook(array(   'appid'  => $app_id,   'secret' => $app_secret,   'cookie' => true ));  // user id $user = $facebook->getuser();  // may or may not have data based on whether user logged in. // // if have $user id here, means know user logged // facebook, don't know if access token valid. access // token invalid if user logged out of facebook.  if ($user) {   try {     // proceed knowing have logged in user who's authenticated.     $user_profile = $facebook->api('/me');   } catch (facebookapiexception $e) {     error_log($e);     $user = null;   } }  // login or logout url needed depending on current user state. if ($user) {   $logouturl = $facebook->getlogouturl(); } else {   $loginurl = $facebook->getloginurl(array('canvas' => 1,                                        'fbconnect' => 0,                                        'next' => 'xxx',                                        'cancel_url' => 'xxx' ));   echo("<script> top.location.href='" . $loginurl . "'</script>"); }  $signed_request = $facebook->getsignedrequest(); function parsepagesignedrequest() {     if (isset($_request['signed_request'])) {       $encoded_sig = null;       $payload = null;       list($encoded_sig, $payload) = explode('.', $_request['signed_request'], 2);       $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));       $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));       return $data;     }     return false;   }   if($signed_request = parsepagesignedrequest()) {     if($signed_request->page->liked) {       echo("<script> location.href='revealed.php'</script>");     } else {       echo "<img src=\"non-fans.jpg\" width=\"520\" height=\"483\">";     }   } ?> <!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=utf-8" /> <title>untitled document</title> </head> <body style="text-align:center; margin:0; overflow:hidden;"> <div id="fb-root"></div>  <script type="text/javascript">    window.fbasyncinit = function() {     fb.init({appid: 'xxx', status: true, cookie: false, xfbml: true});     fb.canvas.scrollto(0,0);   window.settimeout(function() {     fb.canvas.setautoresize();   }, 250);   };   (function() {     var e = document.createelement('script'); e.async = true;     e.src = document.location.protocol +       '//connect.facebook.net/en_us/all.js';     document.getelementbyid('fb-root').appendchild(e);   }()); </script> </body> </html> 

and here code reveal tab - main app.

<?php  require 'facebook.php'; $app_id = "xxx"; $app_secret = "xxx"; // create our application instance (replace appid , secret). $facebook = new facebook(array(   'appid'  => $app_id,   'secret' => $app_secret, ));  // user id $user = $facebook->getuser();  // may or may not have data based on whether user logged in. // // if have $user id here, means know user logged // facebook, don't know if access token valid. access // token invalid if user logged out of facebook.  if ($user) {   try {     // proceed knowing have logged in user who's authenticated.     $user_profile = $facebook->api('/me');   } catch (facebookapiexception $e) {     error_log($e);     $user = null;   } }  function getbrowser() {     $u_agent = $_server['http_user_agent'];     $bname = 'unknown';     $platform = 'unknown';     $version= "";      //first platform?     if (preg_match('/linux/i', $u_agent)) {         $platform = 'linux';     }     elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {         $platform = 'mac';     }     elseif (preg_match('/windows|win32/i', $u_agent)) {         $platform = 'windows';     }      // next name of useragent yes seperately , reason     if(preg_match('/msie/i',$u_agent) && !preg_match('/opera/i',$u_agent))     {         $bname = 'internet explorer';         $ub = "msie";     }     elseif(preg_match('/firefox/i',$u_agent))     {         $bname = 'mozilla firefox';         $ub = "firefox";     }     elseif(preg_match('/chrome/i',$u_agent))     {         $bname = 'google chrome';         $ub = "chrome";     }     elseif(preg_match('/safari/i',$u_agent))     {         $bname = 'apple safari';         $ub = "safari";     }     elseif(preg_match('/opera/i',$u_agent))     {         $bname = 'opera';         $ub = "opera";     }     elseif(preg_match('/netscape/i',$u_agent))     {         $bname = 'netscape';         $ub = "netscape";     }      // correct version number     $known = array('version', $ub, 'other');     $pattern = '#(?<browser>' . join('|', $known) .     ')[/ ]+(?<version>[0-9.|a-za-z.]*)#';     if (!preg_match_all($pattern, $u_agent, $matches)) {         // have no matching number continue     }      // see how many have     $i = count($matches['browser']);     if ($i != 1) {         //we have 2 since not using 'other' argument yet         //see if version before or after name         if (strripos($u_agent,"version") < strripos($u_agent,$ub)){             $version= $matches['version'][0];         }         else {             $version= $matches['version'][1];         }     }     else {         $version= $matches['version'][0];     }      // check if have number     if ($version==null || $version=="") {$version="?";}      return array(         'useragent' => $u_agent,         'name'      => $bname,         'version'   => $version,         'platform'  => $platform,         'pattern'    => $pattern     ); }  // try $ua=getbrowser(); $yourbrowser= "your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['useragent']; ?>  <!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=utf-8" /> <link rel="stylesheet" type="text/css" href="http://meyerweb.com/eric/tools/css/reset/reset.css" media="all" /> <link rel="stylesheet" type="text/css" href="style.css" media="all" /> <script src="jquery-1.6.4.min.js" type="text/javascript"></script> <script src="jquery.validate.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() {     $("#voting-form").validate(); }); </script> </head> <body> <div id="fb-root"></div>  <script type="text/javascript">    window.fbasyncinit = function() {     fb.init({appid: 'xxx', status: true, cookie: false, xfbml: true});     fb.canvas.scrollto(0,0);   window.settimeout(function() {     fb.canvas.setautoresize();   }, 250);   };   (function() {     var e = document.createelement('script'); e.async = true;     e.src = document.location.protocol +       '//connect.facebook.net/en_us/all.js';     document.getelementbyid('fb-root').appendchild(e);   }()); </script> 

let me know if need queries info doubg thats problem works in 99 out of 100 votes

for extrange reason server doesn't recognize user logged in (at least that's think since i'm having same issue), have attempt log user again proper access token. how it:

$user = $facebook->getuser();    if(!$user)  {     $loginurl = $facebook->getloginurl(array('scope'=>'publish_stream,email'));     echo "<script type='text/javascript'>top.location.href = '$loginurl';</script>";     exit; } 

and it's supposed work, can't guarantee anything. hope helps.


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -