Last updated on July 7, 2017
Create a Facebook App
Installation
Now head over to your project folder and , run below command.
$ mkdir fb-php-login $ cd fb-php-login $ composer require facebook/graph-sdk
Above composer command will pull the Facebook PHP SDK into your project directory under vendor folder.
Now create a file called fb-config.php
with below code
APP_id, // Replace {app-id} with your app id 'app_secret' => APP_SECRET, 'default_graph_version' => 'v2.2', ]);
Now create a file called login.php
to show login link.
APP_id, // Replace {app-id} with your app id 'app_secret' => APP_SECRET, 'default_graph_version' => 'v2.2', ]);
Lets create a file called fb-callback.php
with below code, we will redirect to this callback URL after user login dialog is called.
getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (! isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } // Logged in echo 'Access Token
'; var_dump($accessToken->getValue()); // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); echo 'Metadata
'; var_dump($tokenMetadata); // Validation (these will throw FacebookSDKException's when they fail) $tokenMetadata->validateAppId(APP_id); // Replace {app-id} with your app id // If you know the user ID this access token belongs to, you can validate it here //$tokenMetadata->validateUserId('123'); $tokenMetadata->validateExpiration(); if (! $accessToken->isLongLived()) { // Exchanges a short-lived access token for a long-lived one try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "Error getting long-lived access token: " . $helper->getMessage() . "
\n\n"; exit; } echo 'Long-lived
'; var_dump($accessToken->getValue()); } $_SESSION['fb_access_token'] = (string) $accessToken; // User is logged in with a long-lived access token. // You can redirect them to a members-only page. //header('Location: https://example.com/members.php');