{"id":111886,"date":"2021-03-08T12:46:33","date_gmt":"2021-03-08T07:16:33","guid":{"rendered":"https:\/\/www.vskills.in\/certification\/tutorial\/?page_id=111886"},"modified":"2024-04-12T14:31:39","modified_gmt":"2024-04-12T09:01:39","slug":"facebook-login-example","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/","title":{"rendered":"Facebook Login Example"},"content":{"rendered":"\n<p>This example covers Facebook Login with the Facebook SDK for PHP.<\/p>\n\n\n\n<p>Although it&#8217;s common to see examples of Facebook Login being implemented in one PHP script, is best to use two separate PHP scripts for more separation and more control over the responses.<\/p>\n\n\n\n<p>In this example, the PHP script that generates the login link is called \/login.php. The callback URL that Facebook redirects the user to after login dialog is called \/fb-callback.php.<\/p>\n\n\n\n<p>\/login.php<\/p>\n\n\n\n<p>$fb = new Facebook\\Facebook([<\/p>\n\n\n\n<p>&#8216;app_id&#8217; =&gt; &#8216;{app-id}&#8217;,<\/p>\n\n\n\n<p>&#8216;app_secret&#8217; =&gt; &#8216;{app-secret}&#8217;,<\/p>\n\n\n\n<p>&#8216;default_graph_version&#8217; =&gt; &#8216;v2.10&#8217;,<\/p>\n\n\n\n<p>]);<\/p>\n\n\n\n<p>$helper = $fb-&gt;getRedirectLoginHelper();<\/p>\n\n\n\n<p>$permissions = [&#8217;email&#8217;]; \/\/ Optional permissions<\/p>\n\n\n\n<p>$loginUrl = $helper-&gt;getLoginUrl(&#8216;https:\/\/example.com\/fb-callback.php&#8217;, $permissions);<\/p>\n\n\n\n<p>echo &#8216;&lt;a href=&#8221;&#8216; . $loginUrl . &#8216;&#8221;&gt;Log in with Facebook!&lt;\/a&gt;&#8217;;<\/p>\n\n\n\n<p>\/fb-callback.php<\/p>\n\n\n\n<p>$fb = new Facebook\\Facebook([<\/p>\n\n\n\n<p>&#8216;app_id&#8217; =&gt; &#8216;{app-id}&#8217;,<\/p>\n\n\n\n<p>&#8216;app_secret&#8217; =&gt; &#8216;{app-secret}&#8217;,<\/p>\n\n\n\n<p>&#8216;default_graph_version&#8217; =&gt; &#8216;v2.10&#8217;,<\/p>\n\n\n\n<p>]);<\/p>\n\n\n\n<p>$helper = $fb-&gt;getRedirectLoginHelper();<\/p>\n\n\n\n<p>try {<\/p>\n\n\n\n<p>$accessToken = $helper-&gt;getAccessToken();<\/p>\n\n\n\n<p>} catch(Facebook\\Exceptions\\FacebookResponseException $e) {<\/p>\n\n\n\n<p>\/\/ When Graph returns an error<\/p>\n\n\n\n<p>echo &#8216;Graph returned an error: &#8216; . $e-&gt;getMessage();<\/p>\n\n\n\n<p>exit;<\/p>\n\n\n\n<p>} catch(Facebook\\Exceptions\\FacebookSDKException $e) {<\/p>\n\n\n\n<p>\/\/ When validation fails or other local issues<\/p>\n\n\n\n<p>echo &#8216;Facebook SDK returned an error: &#8216; . $e-&gt;getMessage();<\/p>\n\n\n\n<p>exit;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>if (! isset($accessToken)) {<\/p>\n\n\n\n<p>if ($helper-&gt;getError()) {<\/p>\n\n\n\n<p>header(&#8216;HTTP\/1.0 401 Unauthorized&#8217;);<\/p>\n\n\n\n<p>echo &#8220;Error: &#8221; . $helper-&gt;getError() . &#8220;\\n&#8221;;<\/p>\n\n\n\n<p>echo &#8220;Error Code: &#8221; . $helper-&gt;getErrorCode() . &#8220;\\n&#8221;;<\/p>\n\n\n\n<p>echo &#8220;Error Reason: &#8221; . $helper-&gt;getErrorReason() . &#8220;\\n&#8221;;<\/p>\n\n\n\n<p>echo &#8220;Error Description: &#8221; . $helper-&gt;getErrorDescription() . &#8220;\\n&#8221;;<\/p>\n\n\n\n<p>} else {<\/p>\n\n\n\n<p>header(&#8216;HTTP\/1.0 400 Bad Request&#8217;);<\/p>\n\n\n\n<p>echo &#8216;Bad request&#8217;;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>exit;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>\/\/ Logged in<\/p>\n\n\n\n<p>echo &#8216;&lt;h3&gt;Access Token&lt;\/h3&gt;&#8217;;<\/p>\n\n\n\n<p>var_dump($accessToken-&gt;getValue());<\/p>\n\n\n\n<p>\/\/ The OAuth 2.0 client handler helps us manage access tokens<\/p>\n\n\n\n<p>$oAuth2Client = $fb-&gt;getOAuth2Client();<\/p>\n\n\n\n<p>\/\/ Get the access token metadata from \/debug_token<\/p>\n\n\n\n<p>$tokenMetadata = $oAuth2Client-&gt;debugToken($accessToken);<\/p>\n\n\n\n<p>echo &#8216;&lt;h3&gt;Metadata&lt;\/h3&gt;&#8217;;<\/p>\n\n\n\n<p>var_dump($tokenMetadata);<\/p>\n\n\n\n<p>\/\/ Validation (these will throw FacebookSDKException&#8217;s when they fail)<\/p>\n\n\n\n<p>$tokenMetadata-&gt;validateAppId($config[&#8216;app_id&#8217;]);<\/p>\n\n\n\n<p>\/\/ If you know the user ID this access token belongs to, you can validate it here<\/p>\n\n\n\n<p>\/\/$tokenMetadata-&gt;validateUserId(&#8216;123&#8217;);<\/p>\n\n\n\n<p>$tokenMetadata-&gt;validateExpiration();<\/p>\n\n\n\n<p>if (! $accessToken-&gt;isLongLived()) {<\/p>\n\n\n\n<p>\/\/ Exchanges a short-lived access token for a long-lived one<\/p>\n\n\n\n<p>try {<\/p>\n\n\n\n<p>$accessToken = $oAuth2Client-&gt;getLongLivedAccessToken($accessToken);<\/p>\n\n\n\n<p>} catch (Facebook\\Exceptions\\FacebookSDKException $e) {<\/p>\n\n\n\n<p>echo &#8220;&lt;p&gt;Error getting long-lived access token: &#8221; . $e-&gt;getMessage() . &#8220;&lt;\/p&gt;\\n\\n&#8221;;<\/p>\n\n\n\n<p>exit;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>echo &#8216;&lt;h3&gt;Long-lived&lt;\/h3&gt;&#8217;;<\/p>\n\n\n\n<p>var_dump($accessToken-&gt;getValue());<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>$_SESSION[&#8216;fb_access_token&#8217;] = (string) $accessToken;<\/p>\n\n\n\n<p>\/\/ User is logged in with a long-lived access token.<\/p>\n\n\n\n<p>\/\/ You can redirect them to a members-only page.<\/p>\n\n\n\n<p>\/\/header(&#8216;Location: https:\/\/example.com\/members.php&#8217;);<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This example covers Facebook Login with the Facebook SDK for PHP. Although it&#8217;s common to see examples of Facebook Login being implemented in one PHP script, is best to use two separate PHP scripts for more separation and more control over the responses. In this example, the PHP script that generates the login link is&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-111886","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Facebook Login Example - Tutorial<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Facebook Login Example - Tutorial\" \/>\n<meta property=\"og:description\" content=\"This example covers Facebook Login with the Facebook SDK for PHP. Although it&#8217;s common to see examples of Facebook Login being implemented in one PHP script, is best to use two separate PHP scripts for more separation and more control over the responses. In this example, the PHP script that generates the login link is...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutorial\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vskills.in\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T09:01:39+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/\",\"name\":\"Facebook Login Example - Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"datePublished\":\"2021-03-08T07:16:33+00:00\",\"dateModified\":\"2024-04-12T09:01:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Facebook Login Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"name\":\"Tutorial\",\"description\":\"Vskills - A initiative in elearning and certification\",\"publisher\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\",\"name\":\"Vskills\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"contentUrl\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"width\":73,\"height\":55,\"caption\":\"Vskills\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vskills.in\/\",\"https:\/\/x.com\/vskills_in\",\"https:\/\/www.linkedin.com\/company-beta\/1371554\/\",\"https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Facebook Login Example - Tutorial","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/","og_locale":"en_US","og_type":"article","og_title":"Facebook Login Example - Tutorial","og_description":"This example covers Facebook Login with the Facebook SDK for PHP. Although it&#8217;s common to see examples of Facebook Login being implemented in one PHP script, is best to use two separate PHP scripts for more separation and more control over the responses. In this example, the PHP script that generates the login link is...","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-04-12T09:01:39+00:00","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/","name":"Facebook Login Example - Tutorial","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"datePublished":"2021-03-08T07:16:33+00:00","dateModified":"2024-04-12T09:01:39+00:00","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/facebook-login-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Facebook Login Example"}]},{"@type":"WebSite","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","name":"Tutorial","description":"Vskills - A initiative in elearning and certification","publisher":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization","name":"Vskills","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","contentUrl":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","width":73,"height":55,"caption":"Vskills"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vskills.in\/","https:\/\/x.com\/vskills_in","https:\/\/www.linkedin.com\/company-beta\/1371554\/","https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/111886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/comments?post=111886"}],"version-history":[{"count":1,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/111886\/revisions"}],"predecessor-version":[{"id":111887,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/111886\/revisions\/111887"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=111886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=111886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=111886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}