/** * Retrieves Facebook access token. * * @since 0.4 */ public function get_fb_access_token() { $access_token = null; if (isset($this->fb_sdk)) { try { $helper = $this->fb_sdk->getRedirectLoginHelper(); $access_token = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error. Logger::getLogger('instantarticles-wp-plugin')->error('Graph returned an error: ' . $e->getMessage(), $e->getTraceAsString()); } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues. Logger::getLogger('instantarticles-wp-plugin')->error('Facebook SDK returned an error: ' . $e->getMessage(), $e->getTraceAsString()); } } if (null !== $access_token) { // Logged in. return $access_token; } }
$_SESSION['facebook_access_token'] = (string) $accessToken; // OAuth 2.0 client handler $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']); $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken; $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // validating the access token try { $request = $fb->get('/me'); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error if ($e->getCode() == 190) { unset($_SESSION['facebook_access_token']); $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo "<script>window.top.location.href='" . $loginUrl . "'</script>"; exit; } } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // getting basic info about user try { $profile_request = $fb->get('/me?fields=name,first_name,last_name,email'); $profile = $profile_request->getGraphNode()->asArray(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error