Detect Like with Facebook JavaScript API + iFrame -


building app facebook javascript api embedded page using new iframe method.

i want detect if have liked current page. use print_r($_request) in php doesn't seem work when using iframe.

there option: http://developers.facebook.com/docs/reference/fbml/visible-to-connection/ says deprecated , have never liked method hacky.

what way t now? prefer use xfbml + javascript api can use php if required.

we've done several times, , seems work pretty well. uses xfbml generate like button widget , js sdk render xfbml , subscribe facebook events. code sample below:

edit: since you're looking detect if user fan when page loads, , fb deprecated feature let directly them when canvas loaded passing fb_page_id address query string, you'll need application install user test fan-dom of page. adds lot of friction application, - guess.

    <?php require 'facebook.php';  // create our application instance (replace appid , secret). $facebook = new facebook(array(     'appid'  => 'your app id',     'secret' => 'your app secret',     'cookie' => false, ));  try {     $session = $facebook->getsession();      if (empty($session['uid']))     {         throw new exception("user not connected application.");     }      $is_fan = $facebook->api(array(         'method'    => 'fql.query',         'query'     => "select uid, page_id page_fan uid = {$session['uid']}"     ));      if (false == $is_fan || count($is_fan) == 0) // 0 results returned if user not fan     {         $is_fan = false;     }     else     {         $is_fan = true;     }    } catch (facebookapiexception $e) {     /**      * don't have active user session or required permissions       * user, rdr facebook login.     **/      $loginurl = $facebook->getloginurl(array(         'req_perms' => 'user_likes'     ));      header('location: ' . $loginurl);     exit; } ?> <html> <head> </head> <body>  <? if (empty($is_fan)): //user not fan. ?>     <fb:like href="http://www.facebook.com/your-facebook-page"         show_faces="true"         width="400">     </fb:like> <? else: ?>     yay! you're fan! <? endif; >?  <div id="fb-root"></div> <script src="http://connect.facebook.net/en_us/all.js" type="text/javascript">     </script> <script type="text/javascript"> fb.init({     appid: '<?= fb_app_id; ?>',     cookie: true,     status: true,     xfbml: true });  // subscribe edge creation event, facebook fb.event.subscribe('edge.create', function(response) {     alert("congratulations! excited fan now! woot!") });  </script>  </body> </html> 

okay, got got formatted straight markdown. wasn't painful @ all.. (sike) :|


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 -