php facebook sdk doesn't create the user in wordpress
Please find the sample code below. I have made the use of JavaScript SDK for the login and PHP SDK for generating access-token. I hope it will work for you.
** HTML Code:: **
<html> <body> <p><a href="#" onClick="logInWithFacebook()">Log In with the JavaScript SDK</a></p> <script> logInWithFacebook = function() { FB.login(function(response) { if (response.authResponse) { alert('You are logged in & cookie set!'); location.href = "//localhost/facebook/testfb.php" // Now you can redirect the user or do an AJAX request to // a PHP script that grabs the signed request from the cookie. } else { alert('User cancelled login or did not fully authorize.'); } }); return false; }; window.fbAsyncInit = function() { FB.init({ appId: 'app-id', cookie: true, // This is important, it's not enabled by default version: 'v2.9' }); }; (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) { return; } js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script></body></html>
** PHP Code **
<?phprequire_once('Facebook/autoload.php');# /js-login.php$fb = new Facebook\Facebook(['app_id' => '{app-id}','app_secret' => '{app-secret}','default_graph_version' => 'v2.9',]);$helper = $fb->getJavaScriptHelper();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)) { echo 'No cookie set or no OAuth data could be obtained from cookie.'; exit;}// 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);// 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 "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n"; exit; } echo '<h3>Long-lived</h3>'; var_dump($accessToken->getValue());}$_SESSION['fb_access_token'] = (string) $accessToken;try { // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name,email', $accessToken->getValue());} catch(Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit;} catch(Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit;}$user = $response->getGraphUser();echo 'Name: ' . $user['name'];echo 'Email: ' . $user['email'];?>