{"id":516,"date":"2013-11-14T03:08:01","date_gmt":"2013-11-14T03:08:01","guid":{"rendered":"http:\/\/a1webdesignteam.com\/blog\/?p=516"},"modified":"2013-11-14T03:08:37","modified_gmt":"2013-11-14T03:08:37","slug":"create-facebook-popup-authentication-window-using-php-and-javascript","status":"publish","type":"post","link":"https:\/\/a1webdesignteam.com\/blog\/create-facebook-popup-authentication-window-using-php-and-javascript\/","title":{"rendered":"Create Facebook PopUp Authentication Window using PHP and javascript"},"content":{"rendered":"<p>&nbsp;<\/p>\n<div>\n<div>\n<div id=\"highlighter_297935\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>1<\/div>\n<div>2<\/div>\n<div>3<\/div>\n<div>4<\/div>\n<div>5<\/div>\n<div>6<\/div>\n<div>7<\/div>\n<\/td>\n<td>\n<div>\n<div><code>FB.Event.subscribe(<\/code><code>'auth.login'<\/code><code>, <\/code><code>function<\/code><code>(response) {<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/ do something with response<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>login();<\/code><\/div>\n<div><code>});<\/code><\/div>\n<div><code>function<\/code> <code>login(){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>document.location.href = <\/code><code>\"&lt;?=$config['baseurl']?&gt;\"<\/code><code>;<\/code><\/div>\n<div><code>}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>I tested the code in various server but the problem occurs only in his server. Then I think to solve the problem using php-sdk generated login code.<\/p>\n<p>&nbsp;<\/p>\n<p>In the\u00a0<a href=\"http:\/\/github.com\/facebook\/php-sdk\/blob\/master\/examples\/example.php\" target=\"_blank\">official example<\/a>\u00a0you\u2019ll see the code<\/p>\n<div>\n<div id=\"highlighter_684331\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>01<\/div>\n<div>02<\/div>\n<div>03<\/div>\n<div>04<\/div>\n<div>05<\/div>\n<div>06<\/div>\n<div>07<\/div>\n<div>08<\/div>\n<div>09<\/div>\n<div>10<\/div>\n<div>11<\/div>\n<div>12<\/div>\n<div>13<\/div>\n<div>14<\/div>\n<div>15<\/div>\n<div>16<\/div>\n<div>17<\/div>\n<div>18<\/div>\n<\/td>\n<td>\n<div>\n<div><code>&lt;?php<\/code><\/div>\n<div><code>if<\/code> <code>(<\/code><code>$me<\/code><code>) {<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$logoutUrl<\/code> <code>=\u00a0\u00a0 <\/code><code>$facebook<\/code><code>-&gt;getLogoutUrl();<\/code><\/div>\n<div><code>} <\/code><code>else<\/code> <code>{<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$loginUrl<\/code>\u00a0\u00a0 <code>=\u00a0\u00a0 <\/code><code>$facebook<\/code><code>-&gt;getLoginUrl();<\/code><\/div>\n<div><code>}<\/code><\/div>\n<div><code>?&gt;<\/code><\/div>\n<div><code>&lt;?php <\/code><code>if<\/code> <code>(<\/code><code>$me<\/code><code>): ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;a href=<\/code><code>\"&lt;?php echo $logoutUrl; ?&gt;\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;img src=<\/code><code>\"<a href=\"http:\/\/static.ak.fbcdn.net\/rsrc.php\/z2Y31\/hash\/cxrz4k7j.gif\">http:\/\/static.ak.fbcdn.net\/rsrc.php\/z2Y31\/hash\/cxrz4k7j.gif<\/a>\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/a&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php <\/code><code>else<\/code><code>: ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;div&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;a href=<\/code><code>\"&lt;?php echo $loginUrl; ?&gt;\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;img src=<\/code><code>\"<a href=\"http:\/\/static.ak.fbcdn.net\/rsrc.php\/zB6N8\/hash\/4li2k73z.gif\">http:\/\/static.ak.fbcdn.net\/rsrc.php\/zB6N8\/hash\/4li2k73z.gif<\/a>\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/a&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/div&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php <\/code><code>endif<\/code> <code>?&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>But there is a problem, that is if you use the technique then when user will click login he will redirect to the $loginUrl generated by facebook i.e his main browser window\u2019s url will change. But I want, this authentication will happen in javascript popup window as like as javascript sdk based authentication by facebook. And at last I solved it by the following way:<\/p>\n<p><a href=\"http:\/\/thinkdiff.net\/demo\/newfbconnect1\/fbpopup\/index.php\" target=\"_blank\">Check The Demo First<\/a><\/p>\n<p><a href=\"http:\/\/4de08c6af39c20343f39-fec7c301d7eca18188203e783b444e60.r36.cf1.rackcdn.com\/2010\/05\/javascript-popup-php.jpg\" rel=\"lightbox[1685]\"><img loading=\"lazy\" title=\"javascript-popup-php\" alt=\"\" src=\"http:\/\/4de08c6af39c20343f39-fec7c301d7eca18188203e783b444e60.r36.cf1.rackcdn.com\/2010\/05\/javascript-popup-php.jpg\" width=\"568\" height=\"466\" \/><\/a><\/p>\n<p><strong>Logic behind popup authentication using php and javascript:<\/strong><\/p>\n<ol>\n<li>User first click FBConnect Login Button<\/li>\n<li>I\u2019ll create a javascript popup window and load the login url there<\/li>\n<li>When user successfully authenticate there then facebook will redirect him to the \u2018<strong>next<\/strong>\u2018 url passed by me. The redirect will still happen in the popup window.<\/li>\n<li>I\u2019ll also pass a special parameter with \u2018<strong>next<\/strong>\u2018 url\u2019s parameter, so when user redirected here I\u2019ll first collect\u00a0<strong>session<\/strong>\u00a0variable (Facebook sends a\u00a0<strong>session<\/strong>\u00a0json encoded string) I\u2019ll modify them to a special format and save the value as a cookie.<\/li>\n<li>Then I\u2019ll close the popup window and browser\u2019s main window will reload.<\/li>\n<\/ol>\n<p>The procedure is same as\u00a0<a href=\"http:\/\/thinkdiff.net\/facebook\/php-sdk-graph-api-base-facebook-connect-tutorial\/\" target=\"_blank\">my previous article<\/a>\u00a0just I modified the<strong>\u00a0index.php<\/strong><\/p>\n<p><strong>Step 1: Generate\u00a0<\/strong><strong>login\/logout url by php<\/strong><\/p>\n<div>\n<div id=\"highlighter_299339\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>01<\/div>\n<div>02<\/div>\n<div>03<\/div>\n<div>04<\/div>\n<div>05<\/div>\n<div>06<\/div>\n<div>07<\/div>\n<div>08<\/div>\n<div>09<\/div>\n<div>10<\/div>\n<div>11<\/div>\n<div>12<\/div>\n<div>13<\/div>\n<div>14<\/div>\n<div>15<\/div>\n<div>16<\/div>\n<div>17<\/div>\n<div>18<\/div>\n<div>19<\/div>\n<\/td>\n<td>\n<div>\n<div><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>]\u00a0 =\u00a0\u00a0 <\/code><code>\"<a href=\"http:\/\/thinkdiff.net\/demo\/newfbconnect1\/fbpopup\/index.php\">http:\/\/thinkdiff.net\/demo\/newfbconnect1\/fbpopup\/index.php<\/a>\"<\/code><code>;<\/code><\/div>\n<div><\/div>\n<div><code>\/\/ login or logout url will be needed depending on current user state.<\/code><\/div>\n<div><code>if<\/code> <code>(<\/code><code>$fbme<\/code><code>) {<\/code><\/div>\n<div><code>\u00a0\u00a0<\/code><code>$logoutUrl<\/code> <code>= <\/code><code>$facebook<\/code><code>-&gt;getLogoutUrl(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>array<\/code><code>(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'next'<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0 <code>=&gt; <\/code><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>],<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>)<\/code><\/div>\n<div><code>\u00a0\u00a0<\/code><code>);<\/code><\/div>\n<div><code>} <\/code><code>else<\/code> <code>{<\/code><\/div>\n<div><code>\u00a0\u00a0<\/code><code>$loginUrl<\/code> <code>= <\/code><code>$facebook<\/code><code>-&gt;getLoginUrl(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>array<\/code><code>(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'display'<\/code>\u00a0\u00a0 <code>=&gt; <\/code><code>'popup'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'next'<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0 <code>=&gt; <\/code><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>] . <\/code><code>'?loginsucc=1'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'cancel_url'<\/code><code>=&gt; <\/code><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>] . <\/code><code>'?cancel=1'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'req_perms'<\/code> <code>=&gt; <\/code><code>'email,user_birthday'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>)<\/code><\/div>\n<div><code>\u00a0\u00a0<\/code><code>);<\/code><\/div>\n<div><code>}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>If you look carefully you\u2019ll see I passed the\u00a0<strong>next\u00a0<\/strong>parameter for both login and logout url.<\/p>\n<div>\n<div id=\"highlighter_279779\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>1<\/div>\n<\/td>\n<td>\n<div>\n<div><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>] . <\/code><code>'?loginsucc=1'<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>this is mandatory because we will open the login procedure in javascript popup. So after login successfully in the popup window facebook url will redirect to\u00a0<strong>next\u00a0<\/strong>url, so when I\u2019ll get\u00a0<strong>loginsucc\u00a0<\/strong>parameter I\u2019ll close the popup window.<\/p>\n<p>And also look<\/p>\n<div>\n<div id=\"highlighter_138507\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>1<\/div>\n<\/td>\n<td>\n<div>\n<div><code>'cancel_url'<\/code><code>=&gt; <\/code><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>] . <\/code><code>'?cancel=1'<\/code><code>,<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>If user click cancel then I redirect him to this url. So that I check whether user click cancel or not.<\/p>\n<p><strong>Step 2: Add this code just after step1\u2032s code<br \/>\n<\/strong><\/p>\n<div>\n<div id=\"highlighter_822709\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>01<\/div>\n<div>02<\/div>\n<div>03<\/div>\n<div>04<\/div>\n<div>05<\/div>\n<div>06<\/div>\n<div>07<\/div>\n<div>08<\/div>\n<div>09<\/div>\n<div>10<\/div>\n<div>11<\/div>\n<div>12<\/div>\n<div>13<\/div>\n<div>14<\/div>\n<div>15<\/div>\n<div>16<\/div>\n<div>17<\/div>\n<div>18<\/div>\n<div>19<\/div>\n<div>20<\/div>\n<div>21<\/div>\n<div>22<\/div>\n<div>23<\/div>\n<div>24<\/div>\n<div>25<\/div>\n<div>26<\/div>\n<div>27<\/div>\n<div>28<\/div>\n<div>29<\/div>\n<div>30<\/div>\n<div>31<\/div>\n<\/td>\n<td>\n<div>\n<div><code>\/\/if user click cancel not login, then i just close the popup window<\/code><\/div>\n<div><code>\u00a0<\/code><code>if<\/code> <code>(isset(<\/code><code>$_REQUEST<\/code><code>[<\/code><code>'cancel'<\/code><code>])){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>echo<\/code> <code>\"&lt;script&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>window.close();<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/script&gt;\";<\/code><\/div>\n<div><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\/\/only if valid session found and loginsucc is set<\/code><\/div>\n<div><code>if<\/code> <code>(<\/code><code>$fbme<\/code> <code>&amp;&amp; isset(<\/code><code>$_REQUEST<\/code><code>[<\/code><code>'loginsucc'<\/code><code>])){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/after facebook redirects it will send a session parameter as a json value<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/now decode them, make them array and sort based on keys<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$sortArray<\/code> <code>= get_object_vars(json_decode(<\/code><code>$_GET<\/code><code>[<\/code><code>'session'<\/code><code>]));<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>ksort(<\/code><code>$sortArray<\/code><code>);<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$strCookie<\/code>\u00a0 <code>=\u00a0\u00a0 <\/code><code>\"\"<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$flag<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <code>=\u00a0\u00a0 false;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>foreach<\/code><code>(<\/code><code>$sortArray<\/code> <code>as<\/code> <code>$key<\/code><code>=&gt;<\/code><code>$item<\/code><code>){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(<\/code><code>$flag<\/code><code>) <\/code><code>$strCookie<\/code> <code>.= <\/code><code>'&amp;'<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$strCookie<\/code> <code>.= <\/code><code>$key<\/code> <code>. <\/code><code>'='<\/code> <code>. <\/code><code>$item<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$flag<\/code> <code>= true;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/now set the cookie so that next time user don't need to click login again<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/ cookie name should be fbs_ + application id<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>setCookie(<\/code><code>'fbs_'<\/code> <code>. <\/code><code>\"{$fbconfig['appid']}\"<\/code><code>, <\/code><code>$strCookie<\/code><code>);<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>echo<\/code> <code>\"&lt;script&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>window.close();<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>window.opener.location.reload();<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/script&gt;\";<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>This code checks for $fbme and $_REQUEST[&#8216;loginsucc&#8217;] parameter. If it finds ok, then it first collects the value\u00a0<strong>session<\/strong>\u00a0sent by facebook. It is a json encoded string.\u00a0 Next<\/p>\n<div>\n<div id=\"highlighter_564609\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>1<\/div>\n<\/td>\n<td>\n<div>\n<div><code>$sortArray<\/code> <code>= get_object_vars(json_decode(<\/code><code>$_GET<\/code><code>[<\/code><code>'session'<\/code><code>]));<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>json_decode() php function decodes json encoded string and returns a object, then get_object_vars() converts the object to associative array. Then I sort the array based on keys by ksort() php function. Next I make a string $strCookie based on the keys and values of $sortArray and save the $strCookie as cookie.<\/p>\n<p>Then I will close the popup window and reload the main window.<\/p>\n<p><strong>Step 3: Now add this javascript code<\/strong><\/p>\n<div>\n<div id=\"highlighter_863461\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>01<\/div>\n<div>02<\/div>\n<div>03<\/div>\n<div>04<\/div>\n<div>05<\/div>\n<div>06<\/div>\n<div>07<\/div>\n<div>08<\/div>\n<div>09<\/div>\n<div>10<\/div>\n<div>11<\/div>\n<div>12<\/div>\n<div>13<\/div>\n<div>14<\/div>\n<div>15<\/div>\n<div>16<\/div>\n<div>17<\/div>\n<div>18<\/div>\n<div>19<\/div>\n<div>20<\/div>\n<div>21<\/div>\n<div>22<\/div>\n<div>23<\/div>\n<div>24<\/div>\n<div>25<\/div>\n<div>26<\/div>\n<div>27<\/div>\n<\/td>\n<td>\n<div>\n<div><code>&lt;script type=<\/code><code>\"text\/javascript\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php <\/code><code>if<\/code> <code>($loginUrl) { ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>var<\/code> <code>newwindow;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>var<\/code> <code>intId;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>function<\/code> <code>login(){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>var<\/code>\u00a0 <code>screenX\u00a0\u00a0\u00a0 = <\/code><code>typeof<\/code> <code>window.screenX != <\/code><code>'undefined'<\/code> <code>? window.screenX : window.screenLeft,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>screenY\u00a0\u00a0\u00a0 = <\/code><code>typeof<\/code> <code>window.screenY != <\/code><code>'undefined'<\/code> <code>? window.screenY : window.screenTop,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>outerWidth = <\/code><code>typeof<\/code> <code>window.outerWidth != <\/code><code>'undefined'<\/code> <code>? window.outerWidth : document.body.clientWidth,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>outerHeight = <\/code><code>typeof<\/code> <code>window.outerHeight != <\/code><code>'undefined'<\/code> <code>? window.outerHeight : (document.body.clientHeight - 22),<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>width\u00a0\u00a0\u00a0 = 500,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>height\u00a0\u00a0 = 270,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>left\u00a0\u00a0\u00a0\u00a0 = parseInt(screenX + ((outerWidth - width) \/ 2), 10),<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>top\u00a0\u00a0\u00a0\u00a0\u00a0 = parseInt(screenY + ((outerHeight - height) \/ 2.5), 10),<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>features = (<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'width='<\/code> <code>+ width +<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>',height='<\/code> <code>+ height +<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>',left='<\/code> <code>+ left +<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>',top='<\/code> <code>+ top<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>);<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>newwindow=window.open(<\/code><code>'&lt;?=$loginUrl?&gt;'<\/code><code>,<\/code><code>'Login_by_facebook'<\/code><code>,features);<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(window.focus) {newwindow.focus()}<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>return<\/code> <code>false<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php } ?&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Though this is javascript code but it is rendered by php. So I added a php if logic.<strong>Please note that in the second parameter there should be no space \u201cLogin_by_facebook\u201d not \u201cLogin by facebook\u201d, because, if that contains space IE shows javascript error. But other browser will not complain.<\/strong><\/p>\n<div>\n<div id=\"highlighter_236904\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>1<\/div>\n<\/td>\n<td>\n<div>\n<div><code>newwindow=window.open(<\/code><code>'&lt;?=$loginUrl?&gt;'<\/code><code>,<\/code><code>'Login_by_facebook'<\/code><code>,features);<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>This is the code that will open the popup window.\u00a0<strong>features<\/strong>\u00a0is a string that contains some parameters for the outlook of the popup window.<\/p>\n<p><strong>Step 4: Add this html code of the login\/logout buttons<\/strong><\/p>\n<div>\n<div id=\"highlighter_423445\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>1<\/div>\n<div>2<\/div>\n<div>3<\/div>\n<div>4<\/div>\n<div>5<\/div>\n<div>6<\/div>\n<div>7<\/div>\n<div>8<\/div>\n<div>9<\/div>\n<\/td>\n<td>\n<div>\n<div><code>&lt;?php <\/code><code>if<\/code> <code>(<\/code><code>$fbme<\/code><code>) { ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;a href=<\/code><code>\"&lt;?=$logoutUrl?&gt;\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;img src=<\/code><code>\"<a href=\"http:\/\/static.ak.fbcdn.net\/rsrc.php\/z2Y31\/hash\/cxrz4k7j.gif\">http:\/\/static.ak.fbcdn.net\/rsrc.php\/z2Y31\/hash\/cxrz4k7j.gif<\/a>\"<\/code> <code>border=<\/code><code>\"0\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/a&gt;<\/code><\/div>\n<div><code>\u00a0<\/code><code>&lt;?php } <\/code><code>else<\/code><code>{ ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;a href=<\/code><code>\"#\"<\/code> <code>onclick=<\/code><code>\"login();return false;\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;img src=<\/code><code>\"<a href=\"http:\/\/static.ak.fbcdn.net\/rsrc.php\/zB6N8\/hash\/4li2k73z.gif\">http:\/\/static.ak.fbcdn.net\/rsrc.php\/zB6N8\/hash\/4li2k73z.gif<\/a>\"<\/code> <code>border=<\/code><code>\"0\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/a&gt;<\/code><\/div>\n<div><code>\u00a0<\/code><code>&lt;?php } ?&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>That\u2019s it.\u00a0<a href=\"http:\/\/thinkdiff.net\/demo\/newfbconnect1\/fbpopup\/index.php\" target=\"_blank\">Check the demo<\/a>\u00a0its exactly looking the same as facebook javascript based authentication window.<\/p>\n<p>And this technique also solved my friends problem of redirecting issue.<\/p>\n<p>Download\u00a0<a href=\"http:\/\/thinkdiff.net\/facebook\/php-sdk-graph-api-base-facebook-connect-tutorial\/\" target=\"_blank\">fbmain.php from here<\/a>\u00a0and\u00a0<a href=\"http:\/\/github.com\/facebook\/php-sdk\/\" target=\"_blank\">facebook.php from facebook<\/a><\/p>\n<p>Full Source Code of<strong>\u00a0index.php<\/strong><\/p>\n<div>\n<div>\n<div id=\"highlighter_550637\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div>001<\/div>\n<div>002<\/div>\n<div>003<\/div>\n<div>004<\/div>\n<div>005<\/div>\n<div>006<\/div>\n<div>007<\/div>\n<div>008<\/div>\n<div>009<\/div>\n<div>010<\/div>\n<div>011<\/div>\n<div>012<\/div>\n<div>013<\/div>\n<div>014<\/div>\n<div>015<\/div>\n<div>016<\/div>\n<div>017<\/div>\n<div>018<\/div>\n<div>019<\/div>\n<div>020<\/div>\n<div>021<\/div>\n<div>022<\/div>\n<div>023<\/div>\n<div>024<\/div>\n<div>025<\/div>\n<div>026<\/div>\n<div>027<\/div>\n<div>028<\/div>\n<div>029<\/div>\n<div>030<\/div>\n<div>031<\/div>\n<div>032<\/div>\n<div>033<\/div>\n<div>034<\/div>\n<div>035<\/div>\n<div>036<\/div>\n<div>037<\/div>\n<div>038<\/div>\n<div>039<\/div>\n<div>040<\/div>\n<div>041<\/div>\n<div>042<\/div>\n<div>043<\/div>\n<div>044<\/div>\n<div>045<\/div>\n<div>046<\/div>\n<div>047<\/div>\n<div>048<\/div>\n<div>049<\/div>\n<div>050<\/div>\n<div>051<\/div>\n<div>052<\/div>\n<div>053<\/div>\n<div>054<\/div>\n<div>055<\/div>\n<div>056<\/div>\n<div>057<\/div>\n<div>058<\/div>\n<div>059<\/div>\n<div>060<\/div>\n<div>061<\/div>\n<div>062<\/div>\n<div>063<\/div>\n<div>064<\/div>\n<div>065<\/div>\n<div>066<\/div>\n<div>067<\/div>\n<div>068<\/div>\n<div>069<\/div>\n<div>070<\/div>\n<div>071<\/div>\n<div>072<\/div>\n<div>073<\/div>\n<div>074<\/div>\n<div>075<\/div>\n<div>076<\/div>\n<div>077<\/div>\n<div>078<\/div>\n<div>079<\/div>\n<div>080<\/div>\n<div>081<\/div>\n<div>082<\/div>\n<div>083<\/div>\n<div>084<\/div>\n<div>085<\/div>\n<div>086<\/div>\n<div>087<\/div>\n<div>088<\/div>\n<div>089<\/div>\n<div>090<\/div>\n<div>091<\/div>\n<div>092<\/div>\n<div>093<\/div>\n<div>094<\/div>\n<div>095<\/div>\n<div>096<\/div>\n<div>097<\/div>\n<div>098<\/div>\n<div>099<\/div>\n<div>100<\/div>\n<div>101<\/div>\n<div>102<\/div>\n<div>103<\/div>\n<div>104<\/div>\n<div>105<\/div>\n<div>106<\/div>\n<div>107<\/div>\n<div>108<\/div>\n<div>109<\/div>\n<div>110<\/div>\n<div>111<\/div>\n<div>112<\/div>\n<div>113<\/div>\n<div>114<\/div>\n<div>115<\/div>\n<div>116<\/div>\n<div>117<\/div>\n<div>118<\/div>\n<div>119<\/div>\n<div>120<\/div>\n<div>121<\/div>\n<div>122<\/div>\n<div>123<\/div>\n<div>124<\/div>\n<div>125<\/div>\n<div>126<\/div>\n<div>127<\/div>\n<div>128<\/div>\n<div>129<\/div>\n<div>130<\/div>\n<div>131<\/div>\n<div>132<\/div>\n<div>133<\/div>\n<div>134<\/div>\n<div>135<\/div>\n<div>136<\/div>\n<div>137<\/div>\n<div>138<\/div>\n<div>139<\/div>\n<div>140<\/div>\n<div>141<\/div>\n<div>142<\/div>\n<div>143<\/div>\n<div>144<\/div>\n<div>145<\/div>\n<div>146<\/div>\n<div>147<\/div>\n<div>148<\/div>\n<div>149<\/div>\n<div>150<\/div>\n<div>151<\/div>\n<div>152<\/div>\n<div>153<\/div>\n<div>154<\/div>\n<div>155<\/div>\n<div>156<\/div>\n<div>157<\/div>\n<div>158<\/div>\n<div>159<\/div>\n<div>160<\/div>\n<div>161<\/div>\n<div>162<\/div>\n<div>163<\/div>\n<div>164<\/div>\n<div>165<\/div>\n<div>166<\/div>\n<div>167<\/div>\n<div>168<\/div>\n<div>169<\/div>\n<div>170<\/div>\n<div>171<\/div>\n<div>172<\/div>\n<div>173<\/div>\n<div>174<\/div>\n<div>175<\/div>\n<div>176<\/div>\n<div>177<\/div>\n<div>178<\/div>\n<div>179<\/div>\n<div>180<\/div>\n<div>181<\/div>\n<div>182<\/div>\n<div>183<\/div>\n<div>184<\/div>\n<div>185<\/div>\n<div>186<\/div>\n<div>187<\/div>\n<div>188<\/div>\n<div>189<\/div>\n<div>190<\/div>\n<div>191<\/div>\n<div>192<\/div>\n<div>193<\/div>\n<div>194<\/div>\n<div>195<\/div>\n<div>196<\/div>\n<div>197<\/div>\n<div>198<\/div>\n<div>199<\/div>\n<div>200<\/div>\n<div>201<\/div>\n<div>202<\/div>\n<div>203<\/div>\n<div>204<\/div>\n<div>205<\/div>\n<div>206<\/div>\n<div>207<\/div>\n<div>208<\/div>\n<div>209<\/div>\n<div>210<\/div>\n<div>211<\/div>\n<div>212<\/div>\n<div>213<\/div>\n<div>214<\/div>\n<div>215<\/div>\n<div>216<\/div>\n<div>217<\/div>\n<div>218<\/div>\n<div>219<\/div>\n<div>220<\/div>\n<\/td>\n<td>\n<div>\n<div><code>&lt;?php<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>include_once<\/code> <code>\"fbmain.php\"<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>]\u00a0 =\u00a0\u00a0 <\/code><code>\"<a href=\"http:\/\/thinkdiff.net\/demo\/newfbconnect1\/fbpopup\/index.php\">http:\/\/thinkdiff.net\/demo\/newfbconnect1\/fbpopup\/index.php<\/a>\"<\/code><code>;<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/ login or logout url will be needed depending on current user state.<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(<\/code><code>$fbme<\/code><code>) {<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$logoutUrl<\/code> <code>= <\/code><code>$facebook<\/code><code>-&gt;getLogoutUrl(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>array<\/code><code>(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'next'<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0 <code>=&gt; <\/code><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>],<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>)<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>} <\/code><code>else<\/code> <code>{<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$loginUrl<\/code> <code>= <\/code><code>$facebook<\/code><code>-&gt;getLoginUrl(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>array<\/code><code>(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'display'<\/code>\u00a0\u00a0 <code>=&gt; <\/code><code>'popup'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'next'<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0 <code>=&gt; <\/code><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>] . <\/code><code>'?loginsucc=1'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'cancel_url'<\/code><code>=&gt; <\/code><code>$config<\/code><code>[<\/code><code>'baseurl'<\/code><code>] . <\/code><code>'?cancel=1'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'req_perms'<\/code> <code>=&gt; <\/code><code>'email,user_birthday'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>)<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/ if user click cancel in the popup window<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(isset(<\/code><code>$_REQUEST<\/code><code>[<\/code><code>'cancel'<\/code><code>])){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>echo<\/code> <code>\"&lt;script&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>window.close();<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/script&gt;\";<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(<\/code><code>$fbme<\/code> <code>&amp;&amp; isset(<\/code><code>$_REQUEST<\/code><code>[<\/code><code>'loginsucc'<\/code><code>])){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/only if valid session found and loginsucc is set<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/after facebook redirects it will send a session parameter as a json value<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/now decode them, make them array and sort based on keys<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$sortArray<\/code> <code>= get_object_vars(json_decode(<\/code><code>$_GET<\/code><code>[<\/code><code>'session'<\/code><code>]));<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>ksort(<\/code><code>$sortArray<\/code><code>);<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$strCookie<\/code>\u00a0 <code>=\u00a0\u00a0 <\/code><code>\"\"<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$flag<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <code>=\u00a0\u00a0 false;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>foreach<\/code><code>(<\/code><code>$sortArray<\/code> <code>as<\/code> <code>$key<\/code><code>=&gt;<\/code><code>$item<\/code><code>){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(<\/code><code>$flag<\/code><code>) <\/code><code>$strCookie<\/code> <code>.= <\/code><code>'&amp;'<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$strCookie<\/code> <code>.= <\/code><code>$key<\/code> <code>. <\/code><code>'='<\/code> <code>. <\/code><code>$item<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$flag<\/code> <code>= true;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/now set the cookie so that next time user don't need to click login again<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>setCookie(<\/code><code>'fbs_'<\/code> <code>. <\/code><code>\"{$fbconfig['appid']}\"<\/code><code>, <\/code><code>$strCookie<\/code><code>);<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>echo<\/code> <code>\"&lt;script&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>window.close();<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>window.opener.location.reload();<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/script&gt;\";<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/if user is logged in and session is valid.<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(<\/code><code>$fbme<\/code><code>){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/Retriving movies those are user like using graph api<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>try<\/code><code>{<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$movies<\/code> <code>= <\/code><code>$facebook<\/code><code>-&gt;api(<\/code><code>'\/me\/movies'<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>catch<\/code><code>(Exception <\/code><code>$o<\/code><code>){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>d(<\/code><code>$o<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/Calling users.getinfo legacy api call example<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>try<\/code><code>{<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$param<\/code>\u00a0 <code>=\u00a0\u00a0 <\/code><code>array<\/code><code>(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'method'<\/code>\u00a0 <code>=&gt; <\/code><code>'users.getinfo'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'uids'<\/code>\u00a0\u00a0\u00a0 <code>=&gt; <\/code><code>$fbme<\/code><code>[<\/code><code>'id'<\/code><code>],<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'fields'<\/code>\u00a0 <code>=&gt; <\/code><code>'name,current_location,profile_url'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'callback'<\/code><code>=&gt; <\/code><code>''<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$userInfo<\/code>\u00a0\u00a0 <code>=\u00a0\u00a0 <\/code><code>$facebook<\/code><code>-&gt;api(<\/code><code>$param<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>catch<\/code><code>(Exception <\/code><code>$o<\/code><code>){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>d(<\/code><code>$o<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/update user's status using graph api<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(isset(<\/code><code>$_POST<\/code><code>[<\/code><code>'tt'<\/code><code>])){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>try<\/code> <code>{<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$statusUpdate<\/code> <code>= <\/code><code>$facebook<\/code><code>-&gt;api(<\/code><code>'\/me\/feed'<\/code><code>, <\/code><code>'post'<\/code><code>, <\/code><code>array<\/code><code>(<\/code><code>'message'<\/code><code>=&gt; <\/code><code>$_POST<\/code><code>[<\/code><code>'tt'<\/code><code>], <\/code><code>'cb'<\/code> <code>=&gt; <\/code><code>''<\/code><code>));<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>} <\/code><code>catch<\/code> <code>(FacebookApiException <\/code><code>$e<\/code><code>) {<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>d(<\/code><code>$e<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/fql query example using legacy method call and passing parameter<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>try<\/code><code>{<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/get user id<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$uid<\/code>\u00a0\u00a0\u00a0 <code>= <\/code><code>$facebook<\/code><code>-&gt;getUser();<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>\/\/or you can use $uid = $fbme['id'];<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$fql<\/code>\u00a0\u00a0\u00a0 <code>=\u00a0\u00a0 <\/code><code>\"select name, hometown_location, sex, pic_square from user where uid=\"<\/code> <code>. <\/code><code>$uid<\/code><code>;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$param<\/code>\u00a0 <code>=\u00a0\u00a0 <\/code><code>array<\/code><code>(<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'method'<\/code>\u00a0\u00a0\u00a0 <code>=&gt; <\/code><code>'fql.query'<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'query'<\/code>\u00a0\u00a0\u00a0\u00a0 <code>=&gt; <\/code><code>$fql<\/code><code>,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'callback'<\/code>\u00a0 <code>=&gt; <\/code><code>''<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>$fqlResult<\/code>\u00a0\u00a0 <code>=\u00a0\u00a0 <\/code><code>$facebook<\/code><code>-&gt;api(<\/code><code>$param<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>catch<\/code><code>(Exception <\/code><code>$o<\/code><code>){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>d(<\/code><code>$o<\/code><code>);<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><code>?&gt;<\/code><\/div>\n<div><code>&lt;!DOCTYPE html&gt;<\/code><\/div>\n<div><code>&lt;html xmlns=<\/code><code>\"<a href=\"http:\/\/www.w3.org\/1999\/xhtml\">http:\/\/www.w3.org\/1999\/xhtml<\/a>\"<\/code> <code>xmlns:fb=<\/code><code>\"<a href=\"http:\/\/www.facebook.com\/2008\/fbml\">http:\/\/www.facebook.com\/2008\/fbml<\/a>\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;head&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;meta http-equiv=<\/code><code>\"Content-Type\"<\/code> <code>content=<\/code><code>\"text\/html; charset=UTF-8\"<\/code><code>\/&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;title&gt;Create your own Facebook PopUp Authentication Window using php <\/code><code>and<\/code> <code>javascript | Thinkdiff.net&lt;\/title&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/head&gt;<\/code><\/div>\n<div><code>&lt;body&gt;<\/code><\/div>\n<div><code>&lt;style type=<\/code><code>\"text\/css\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>.box{<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>margin: 5px;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>border: 1px solid #60729b;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>padding: 5px;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>width: 500px;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>height: 200px;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>overflow:auto;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>background-color: #e6ebf8;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><code>&lt;\/style&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;script type=<\/code><code>\"text\/javascript\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php <\/code><code>if<\/code> <code>(<\/code><code>$loginUrl<\/code><code>) { ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>var<\/code> <code>newwindow;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>var<\/code> <code>intId;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>function<\/code> <code>login(){<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>var<\/code>\u00a0 <code>screenX\u00a0\u00a0\u00a0 = typeof window.screenX != <\/code><code>'undefined'<\/code> <code>? window.screenX : window.screenLeft,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>screenY\u00a0\u00a0\u00a0 = typeof window.screenY != <\/code><code>'undefined'<\/code> <code>? window.screenY : window.screenTop,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>outerWidth = typeof window.outerWidth != <\/code><code>'undefined'<\/code> <code>? window.outerWidth : document.body.clientWidth,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>outerHeight = typeof window.outerHeight != <\/code><code>'undefined'<\/code> <code>? window.outerHeight : (document.body.clientHeight - 22),<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>width\u00a0\u00a0\u00a0 = 500,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>height\u00a0\u00a0 = 270,<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>left\u00a0\u00a0\u00a0\u00a0 = parseInt(screenX + ((outerWidth - width) \/ 2), 10),<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>top\u00a0\u00a0\u00a0\u00a0\u00a0 = parseInt(screenY + ((outerHeight - height) \/ 2.5), 10),<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>features = (<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>'width='<\/code> <code>+ width +<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>',height='<\/code> <code>+ height +<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>',left='<\/code> <code>+ left +<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>',top='<\/code> <code>+ top<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>);<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>newwindow=window.open(<\/code><code>'&lt;?=$loginUrl?&gt;'<\/code><code>,<\/code><code>'Login_by_facebook'<\/code><code>,features);<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>if<\/code> <code>(window.focus) {newwindow.focus()}<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>return<\/code> <code>false;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>}<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php } ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/script&gt;<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;h3&gt;Create your own Facebook PopUp Authentication Window using php <\/code><code>and<\/code> <code>javascript | Thinkdiff.net&lt;\/h3&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php <\/code><code>if<\/code> <code>(!<\/code><code>$fbme<\/code><code>) { ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>You've to login using FB Login Button to see api calling result.<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php } ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;p&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php <\/code><code>if<\/code> <code>(<\/code><code>$fbme<\/code><code>) { ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;a href=<\/code><code>\"&lt;?=$logoutUrl?&gt;\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;img src=<\/code><code>\"<a href=\"http:\/\/static.ak.fbcdn.net\/rsrc.php\/z2Y31\/hash\/cxrz4k7j.gif\">http:\/\/static.ak.fbcdn.net\/rsrc.php\/z2Y31\/hash\/cxrz4k7j.gif<\/a>\"<\/code> <code>border=<\/code><code>\"0\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/a&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php } <\/code><code>else<\/code><code>{ ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;a href=<\/code><code>\"#\"<\/code> <code>onclick=<\/code><code>\"login();return false;\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;img src=<\/code><code>\"<a href=\"http:\/\/static.ak.fbcdn.net\/rsrc.php\/zB6N8\/hash\/4li2k73z.gif\">http:\/\/static.ak.fbcdn.net\/rsrc.php\/zB6N8\/hash\/4li2k73z.gif<\/a>\"<\/code> <code>border=<\/code><code>\"0\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/a&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php } ?&gt;<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/p&gt;<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;!-- all time check <\/code><code>if<\/code> <code>user session is valid <\/code><code>or<\/code> <code>not --&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php <\/code><code>if<\/code> <code>(<\/code><code>$fbme<\/code><code>){ ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;table border=<\/code><code>\"0\"<\/code> <code>cellspacing=<\/code><code>\"3\"<\/code> <code>cellpadding=<\/code><code>\"3\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;tr&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;td&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;!-- Data retrived from user profile are shown here --&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;div <\/code><code>class<\/code><code>=<\/code><code>\"box\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;b&gt;User Information using Graph API&lt;\/b&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php d(<\/code><code>$fbme<\/code><code>); ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/div&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/td&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;td&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;div <\/code><code>class<\/code><code>=<\/code><code>\"box\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;b&gt;User likes these movies | using graph api&lt;\/b&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php d(<\/code><code>$movies<\/code><code>); ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/div&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/td&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/tr&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;tr&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;td&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;div <\/code><code>class<\/code><code>=<\/code><code>\"box\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;b&gt;User Information by Calling Legacy API method <\/code><code>\"users.getinfo\"<\/code><code>&lt;\/b&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php d(<\/code><code>$userInfo<\/code><code>); ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/div&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/td&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;td&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;div <\/code><code>class<\/code><code>=<\/code><code>\"box\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;b&gt;FQL Query Example by calling Legacy API method <\/code><code>\"fql.query\"<\/code><code>&lt;\/b&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php d(<\/code><code>$fqlResult<\/code><code>); ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/div&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/td&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/tr&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/table&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;div <\/code><code>class<\/code><code>=<\/code><code>\"box\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;form name=<\/code><code>\"\"<\/code> <code>action=<\/code><code>\"&lt;?=$config['baseurl']?&gt;\"<\/code> <code>method=<\/code><code>\"post\"<\/code><code>&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;label <\/code><code>for<\/code><code>=<\/code><code>\"tt\"<\/code><code>&gt;Status update using Graph API&lt;\/label&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;br \/&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;textarea id=<\/code><code>\"tt\"<\/code> <code>name=<\/code><code>\"tt\"<\/code> <code>cols=<\/code><code>\"50\"<\/code> <code>rows=<\/code><code>\"5\"<\/code><code>&gt;Write your status here <\/code><code>and<\/code> <code>click <\/code><code>'Update My Status'<\/code><code>&lt;\/textarea&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;br \/&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;input type=<\/code><code>\"submit\"<\/code> <code>value=<\/code><code>\"Update My Status\"<\/code> <code>\/&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/form&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php <\/code><code>if<\/code> <code>(isset(<\/code><code>$statusUpdate<\/code><code>)) { ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;br \/&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;b style=<\/code><code>\"color: red\"<\/code><code>&gt;Status Updated Successfully! Status id is &lt;?=<\/code><code>$statusUpdate<\/code><code>[<\/code><code>'id'<\/code><code>]?&gt;&lt;\/b&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php } ?&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/div&gt;<\/code><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;?php } ?&gt;<\/code><\/div>\n<div><\/div>\n<div><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>&lt;\/body&gt;<\/code><\/div>\n<div><code>&lt;\/html&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>I hope this article will help to a clear view of popup authentication. You can use my techniques to create popup authentication for twitter, linkedin, other mashup service and your own authentication system.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; 1 2 3 4 5 6 7 FB.Event.subscribe(&#8216;auth.login&#8217;, function(response) { \u00a0\u00a0\u00a0\u00a0\/\/ do something with response \u00a0\u00a0\u00a0\u00a0\u00a0login(); }); function login(){ \u00a0\u00a0\u00a0\u00a0document.location.href = &#8220;&lt;?=$config[&#8216;baseurl&#8217;]?&gt;&#8221;; } I tested the code in various server but the problem occurs only in his server. Then I think to solve the problem using php-sdk generated login code. &nbsp; In the\u00a0official example\u00a0you\u2019ll [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[10],"tags":[],"_links":{"self":[{"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/posts\/516"}],"collection":[{"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/comments?post=516"}],"version-history":[{"count":0,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/posts\/516\/revisions"}],"wp:attachment":[{"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/media?parent=516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/categories?post=516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/tags?post=516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}