Guest User

Untitled

a guest
Mar 23rd, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. session_start();
  2. require_once __DIR__ . '/src/autoload.php'; // download official fb sdk for php @ https://github.com/facebook/php-graph-sdk
  3. $fb = new FacebookFacebook([
  4. 'app_id' => '2030958897177886',
  5. 'app_secret' => '49bef31b7b89d4a6c0da9a5c797f8892',
  6. 'default_graph_version' => 'v2.11',
  7. ]);
  8. $helper = $fb->getRedirectLoginHelper();
  9. $permissions = ['email']; // optional
  10.  
  11. // print_r($helper);
  12. // exit();
  13.  
  14. try {
  15. if (isset($_SESSION['facebook_access_token'])) {
  16. $accessToken = $_SESSION['facebook_access_token'];
  17. } else {
  18. $accessToken = $helper->getAccessToken();
  19. }
  20. } catch(FacebookExceptionsFacebookResponseException $e) {
  21. // When Graph returns an error
  22. echo 'Graph returned an error: ' . $e->getMessage();
  23. exit;
  24. } catch(FacebookExceptionsFacebookSDKException $e) {
  25. // When validation fails or other local issues
  26. echo 'Facebook SDK returned an error: ' . $e->getMessage();
  27. exit;
  28. }
  29.  
  30. if (isset($accessToken)) {
  31. if (isset($_SESSION['facebook_access_token'])) {
  32. $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
  33. } else {
  34. // getting short-lived access token
  35. $_SESSION['facebook_access_token'] = (string) $accessToken;
  36. // OAuth 2.0 client handler
  37. $oAuth2Client = $fb->getOAuth2Client();
  38. // Exchanges a short-lived access token for a long-lived one
  39. $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
  40. $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
  41. // setting default access token to be used in script
  42. $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
  43. }
  44. // redirect the user back to the same page if it has "code" GET variable
  45. if (isset($_GET['code'])) {
  46. header('Location: ./');
  47. }
  48. // getting basic info about user
  49. try {
  50. $profile_request = $fb->get('/me?fields=name,first_name,last_name,email,picture');
  51. $user = $profile_request->getGraphNode()->asArray();
  52. } catch(FacebookExceptionsFacebookResponseException $e) {
  53. // When Graph returns an error
  54. echo 'Graph returned an error: ' . $e->getMessage();
  55. session_destroy();
  56. // redirecting user back to app login page
  57. header("Location: ./");
  58. exit;
  59. } catch(FacebookExceptionsFacebookSDKException $e) {
  60. // When validation fails or other local issues
  61. echo 'Facebook SDK returned an error: ' . $e->getMessage();
  62. exit;
  63. }
Add Comment
Please, Sign In to add comment