Repository: sohaibilyas/facebook-php-sdk-v5 Branch: master Commit: c7234e13d8c6 Files: 31 Total size: 94.3 KB Directory structure: gitextract_n5op7crp/ ├── LICENSE.md ├── README.md ├── add-page-tab.php ├── canvas-app-login-get-basic-info.php ├── check-declined-granted-permission.php ├── comment-on-public-posts.php ├── debug-access-token.php ├── get-all-photos-of-user.php ├── get-all-posts-on-user-timeline.php ├── get-basic-page-info.php ├── get-likes-data-posts-photos.php ├── get-list-of-friends-names.php ├── get-list-of-liked-pages.php ├── get-list-of-managed-groups.php ├── get-more-user-info.php ├── get-user-profile-picture.php ├── like-public-posts.php ├── live-video-api.php ├── login-on-website-get-basic-info.php ├── multi-photo-story.php ├── post-as-page.php ├── post-on-user-timeline.php ├── post-reactions-info.php ├── search.php ├── send-html-form-data.php ├── send-notification-user.php ├── single-multiple-posting-managed-groups.php ├── tag-friends-in-photo.php ├── tag-friends.php ├── upload-photo-on-timeline.php └── validating-access-token.php ================================================ FILE CONTENTS ================================================ ================================================ FILE: LICENSE.md ================================================ The MIT License (MIT) Copyright (c) 2015 Sohaib Ilyas (Roomi) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ This repo has been archived, visit https://github.com/sohaibilyas/facebook-php-sdk for latest Facebook PHP SDK with examples. ================================================ FILE: add-page-tab.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://sohaibilyas.com/APP_DIR/'); $permissions = ['manage_pages']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $pages = $fb->get('/me/accounts'); $pages = $pages->getGraphEdge()->asArray(); ?>
get('/' . $_POST['page'] . '?fields=access_token, name, id'); $page = $page->getGraphNode()->asArray(); $addTab = $fb->post('/' . $page['id'] . '/tabs', array('app_id' => 'APP_ID'), $page['access_token']); $addTab = $addTab->getGraphNode()->asArray(); print_r($addTab); } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: canvas-app-login-get-basic-info.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['email']; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; 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 echo 'Graph returned an error: ' . $e->getMessage(); unset($_SESSION['facebook_access_token']); echo ""; exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // priting basic info about user on the screen print_r($profile); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: check-declined-granted-permission.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['publish_actions']; try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // getting declined and granted permissions $permissions = $fb->get('/me/permissions'); $permissions = $permissions->getGraphEdge()->asArray(); // printing declined and granted permission echo "
";
	print_r($permissions);
	echo "
"; // making new login URL with declined permissions attached to it foreach ($permissions as $key) { if ($key['status'] == 'declined') { $declined[] = $key['permission']; $loginUrl = $helper->getReRequestUrl('http://sohaibilyas.com/APP_DIR/', $declined); echo 'Log in with Facebook!'; } } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl('http://sohaibilyas.com/APP_DIR/', $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: comment-on-public-posts.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://sohaibilyas.com/fbapp/'); $permissions = ['publish_actions']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // getting basic info about user try { $post = $fb->post('/object-id/comments', array('message' => 'this message should come from user-end')); $post = $post->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } print_r($post); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: debug-access-token.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['email']; // optional try { if (isset($_SESSION['localhost_app_token'])) { $accessToken = $_SESSION['localhost_app_token']; } else { $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 (isset($_SESSION['localhost_app_token'])) { $fb->setDefaultAccessToken($_SESSION['localhost_app_token']); } else { // getting short-lived access token $_SESSION['localhost_app_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['localhost_app_token']); $_SESSION['localhost_app_token'] = (string) $longLivedAccessToken; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['localhost_app_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // 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 echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // redirecting user back to app login page header("Location: ./"); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // debugging access token $debugToken = $fb->get('/debug_token?input_token='. $_SESSION['localhost_app_token']); $debugToken = $debugToken->getGraphNode()->asArray(); // printing out debugToken response array on screen echo "
";
	print_r($debugToken);
	echo "
"; // Now you can redirect to another page and use the access token from $_SESSION['localhost_app_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl('http://sohaibilyas.com/fbapp/', $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: get-all-photos-of-user.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['user_photos']; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; } exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // getting all photos of user try { $photos_request = $fb->get('/me/photos?limit=100&type=uploaded'); $photos = $photos_request->getGraphEdge(); } 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; } $all_photos = array(); if ($fb->next($photos)) { $photos_array = $photos->asArray(); $all_photos = array_merge($photos_array, $all_photos); while ($photos = $fb->next($photos)) { $photos_array = $photos->asArray(); $all_photos = array_merge($photos_array, $all_photos); } } else { $photos_array = $photos->asArray(); $all_photos = array_merge($photos_array, $all_photos); } foreach ($all_photos as $key) { $photo_request = $fb->get('/'.$key['id'].'?fields=images'); $photo = $photo_request->getGraphNode()->asArray(); echo '
'; } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/'); echo ""; } ================================================ FILE: get-all-posts-on-user-timeline.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['user_posts']; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; exit; } } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // getting all posts published by user try { $posts_request = $fb->get('/me/posts?limit=500'); } 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; } $total_posts = array(); $posts_response = $posts_request->getGraphEdge(); if($fb->next($posts_response)) { $response_array = $posts_response->asArray(); $total_posts = array_merge($total_posts, $response_array); while ($posts_response = $fb->next($posts_response)) { $response_array = $posts_response->asArray(); $total_posts = array_merge($total_posts, $response_array); } print_r($total_posts); } else { $posts_response = $posts_request->getGraphEdge()->asArray(); print_r($posts_response); } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: get-basic-page-info.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = []; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // getting basic info about user try { $profile_request = $fb->get('/me'); $profile = $profile_request->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // redirecting user back to app login page header("Location: ./"); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // get basic page info $page = $fb->get('/funnydemons?fields=username,picture.width(500),cover,'); $page = $page->getGraphNode()->asArray(); echo ""; // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl('http://sohaibilyas.com/APP_DIR/', $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: get-likes-data-posts-photos.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://sohaibilyas.com/fbapp/'); $permissions = ['user_posts', 'user_photos']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // getting likes data of recent 100 posts by user $getPostsLikes = $fb->get('/me/posts?fields=likes.limit(1000){name,id}&limit=100'); $getPostsLikes = $getPostsLikes->getGraphEdge()->asArray(); // printing likes data as per requirements foreach ($getPostsLikes as $key) { if (isset($key['likes'])) { echo count($key['likes']) . '
'; foreach ($key['likes'] as $key) { echo $key['name'] . '
'; } } } // getting likes data of recent 100 photos by user $getPhotosLikes = $fb->get('/me/photos?fields=likes.limit(1000){name,id}&limit=100&type=uploaded'); $getPhotosLikes = $getPhotosLikes->getGraphEdge()->asArray(); // printing likes data as per requirements foreach ($getPhotosLikes as $key) { if (isset($key['likes'])) { echo count($key['likes']) . '
'; foreach ($key['likes'] as $key) { echo $key['name'] . '
'; } } } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: get-list-of-friends-names.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['user_friends']; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; } exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // get list of friends' names try { $requestFriends = $fb->get('/me/taggable_friends?fields=name&limit=100'); $friends = $requestFriends->getGraphEdge(); } 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 have more friends than 100 as we defined the limit above on line no. 68 if ($fb->next($friends)) { $allFriends = array(); $friendsArray = $friends->asArray(); $allFriends = array_merge($friendsArray, $allFriends); while ($friends = $fb->next($friends)) { $friendsArray = $friends->asArray(); $allFriends = array_merge($friendsArray, $allFriends); } foreach ($allFriends as $key) { echo $key['name'] . "
"; } echo count($allFriends); } else { $allFriends = $friends->asArray(); $totalFriends = count($allFriends); foreach ($allFriends as $key) { echo $key['name'] . "
"; } } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: get-list-of-liked-pages.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['user_likes']; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; exit; } } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // get list of pages liked by user try { $requestLikes = $fb->get('/me/likes?limit=100'); $likes = $requestLikes->getGraphEdge(); } 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; } $totalLikes = array(); if ($fb->next($likes)) { $likesArray = $likes->asArray(); $totalLikes = array_merge($totalLikes, $likesArray); while ($likes = $fb->next($likes)) { $likesArray = $likes->asArray(); $totalLikes = array_merge($totalLikes, $likesArray); } } else { $likesArray = $likes->asArray(); $totalLikes = array_merge($totalLikes, $likesArray); } // printing data on screen foreach ($totalLikes as $key) { echo $key['name'] . '
'; } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: get-list-of-managed-groups.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['user_managed_groups']; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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']); } // redirect user back to app when page receives $_GET['code'] variable if (isset($_GET['code'])) { echo ""; exit; } // 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 ""; exit; } } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // get list of groups managed by user try { $requestGroups = $fb->get('/me/groups'); $groups = $requestGroups->getGraphEdge()->asArray(); } 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; } foreach ($groups as $key) { echo $key['name'] . "
"; } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: get-more-user-info.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['user_birthday', 'user_location', 'user_website']; // optional try { if (isset($_SESSION['localhost_app_token'])) { $accessToken = $_SESSION['localhost_app_token']; } else { $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 (isset($_SESSION['localhost_app_token'])) { $fb->setDefaultAccessToken($_SESSION['localhost_app_token']); } else { // getting short-lived access token $_SESSION['localhost_app_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['localhost_app_token']); $_SESSION['localhost_app_token'] = (string) $longLivedAccessToken; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['localhost_app_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // getting basic info about user try { $profile_request = $fb->get('/me?fields=name,first_name,last_name,birthday,website,location'); $profile = $profile_request->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // redirecting user back to app login page header("Location: ./"); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // printing $profile array on the screen which holds the basic info about user echo $profile['birthday']->format('d-m-Y'); echo $profile['website']; echo $profile['location']['name']; // Now you can redirect to another page and use the access token from $_SESSION['localhost_app_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl('http://sohaibilyas.com/fbapp/', $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: get-user-profile-picture.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['email']; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; exit; } } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // getting profile picture of the user try { $requestPicture = $fb->get('/me/picture?redirect=false&height=300'); //getting user picture $requestProfile = $fb->get('/me'); // getting basic info $picture = $requestPicture->getGraphUser(); $profile = $requestProfile->getGraphUser(); } 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; } // showing picture on the screen echo ""; // saving picture $img = __DIR__.'/'.$profile['id'].'.jpg'; file_put_contents($img, file_get_contents($picture['url'])); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/'); echo ""; } ================================================ FILE: like-public-posts.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://sohaibilyas.com/APP_DIR/'); $permissions = ['publish_actions']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $posts = $fb->get('/id/feed'); // page username or group id or user id $posts = $posts->getGraphEdge()->asArray(); // got posts along ids $post = $posts[0]['id']; // getting specific post id $like = $fb->post('/' . $posts[0]['id'] . '/likes'); // liking that post on facebook print_r($like->getGraphNode()->asArray()); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: live-video-api.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://WEBSITE.com/fbapp/'); $permissions = ['publish_actions']; try { if (isset($_SESSION['fb_token'])) { $accessToken = $_SESSION['fb_token']; } else { $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 (isset($_SESSION['fb_token'])) { $fb->setDefaultAccessToken($_SESSION['fb_token']); } else { // getting short-lived access token $_SESSION['fb_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['fb_token']); $_SESSION['fb_token'] = (string) $longLivedAccessToken; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['fb_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // to create live video $createLiveVideo = $fb->post('/me/live_videos', ['title' => 'new video', 'description' => 'descrip of the video']); $createLiveVideo = $createLiveVideo->getGraphNode()->asArray(); print_r($createLiveVideo); // to get live video info $LiveVideo = $fb->get('/live_video_id'); $LiveVideo = $LiveVideo->getGraphNode()->asArray(); print_r($LiveVideo); // to update live video $LiveVideo = $fb->post('/live_video_id', ['title' => 'title of the new video']); $LiveVideo = $LiveVideo->getGraphNode()->asArray(); print_r($LiveVideo); // to delete live video $LiveVideo = $fb->delete('/live_video_id'); $LiveVideo = $LiveVideo->getGraphNode()->asArray(); print_r($LiveVideo); // Now you can redirect to another page and use the access token from $_SESSION['fb_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: login-on-website-get-basic-info.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['email']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // 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 echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // redirecting user back to app login page header("Location: ./"); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // printing $profile array on the screen which holds the basic info about user print_r($profile); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl('https://sohaibilyas.com/fbapp/', $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: multi-photo-story.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://WEBSITE_URL.com/fbapp/'); $permissions = ['publish_actions', 'user_photos']; // optional try { if (isset($_SESSION['fb_token'])) { $accessToken = $_SESSION['fb_token']; } else { $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 (isset($_SESSION['fb_token'])) { $fb->setDefaultAccessToken($_SESSION['fb_token']); } else { // getting short-lived access token $_SESSION['fb_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['fb_token']); $_SESSION['fb_token'] = (string) $longLivedAccessToken; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['fb_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // post multi-photo story $uploadPhoto1 = $fb->post('/me/photos', ['published' => 'false', 'url' => 'https://pbs.twimg.com/profile_images/766914502919086080/lchcXIiJ_400x400.jpg']); $uploadPhoto2 = $fb->post('/me/photos', ['published' => 'false', 'url' => 'https://pbs.twimg.com/profile_images/648888480974508032/66_cUYfj_400x400.jpg']); $uploadPhoto3 = $fb->post('/me/photos', ['published' => 'false', 'url' => 'https://pbs.twimg.com/profile_images/775931351480401921/qAGIo8Kt_400x400.jpg']); $uploadPhoto1 = $uploadPhoto1->getGraphNode()->asArray(); $uploadPhoto2 = $uploadPhoto2->getGraphNode()->asArray(); $uploadPhoto3 = $uploadPhoto3->getGraphNode()->asArray(); $photo1 = $uploadPhoto1['id']; $photo2 = $uploadPhoto2['id']; $photo3 = $uploadPhoto3['id']; $multiPhotoPost = $fb->post('/me/feed', [ 'attached_media[0]' => '{"media_fbid":"'.$photo1.'"}', 'attached_media[1]' => '{"media_fbid":"'.$photo2.'"}', 'attached_media[2]' => '{"media_fbid":"'.$photo3.'"}', 'message' => 'just today story' ]); // Now you can redirect to another page and use the access token from $_SESSION['fb_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: post-as-page.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['manage_pages', 'publish_pages']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // getting basic info about user try { $profile_request = $fb->get('/me'); $profile = $profile_request->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // redirecting user back to app login page header("Location: ./"); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // post on behalf of page $pages = $fb->get('/me/accounts'); $pages = $pages->getGraphEdge()->asArray(); foreach ($pages as $key) { if ($key['name'] == 'Funny Demons') { $post = $fb->post('/' . $key['id'] . '/feed', array('message' => 'just for testing...'), $key['access_token']); $post = $post->getGraphNode()->asArray(); print_r($post); } } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl('http://sohaibilyas.com/APP_DIR/', $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: post-on-user-timeline.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['email', 'publish_actions']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; exit; } } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // posting on user timeline using publish_actins permission try { // message must come from the user-end $data = ['message' => 'testing...']; $request = $fb->post('/me/feed', $data); $response = $request->getGraphNode()->asArray; } 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; } echo $response['id']; // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: post-reactions-info.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://WEBSITE.com/fbapp/'); $permissions = []; // optional try { if (isset($_SESSION['fb_token'])) { $accessToken = $_SESSION['fb_token']; } else { $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 (isset($_SESSION['fb_token'])) { $fb->setDefaultAccessToken($_SESSION['fb_token']); } else { // getting short-lived access token $_SESSION['fb_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['fb_token']); $_SESSION['fb_token'] = (string) $longLivedAccessToken; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['fb_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $reactions = $fb->get('/6738073078_10155808173158079/reactions?summary=total_count&type=LIKE'); $reactions = $reactions->getGraphEdge()->getTotalCount(); print_r($reactions); // Now you can redirect to another page and use the access token from $_SESSION['fb_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: search.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://sohaibilyas.com/APP_DIR/'); $permissions = []; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // type can be user, group, page or event $search = $fb->get('/search?q=programming&type=page'); $search = $search->getGraphEdge()->asArray(); foreach ($search as $key) { echo $key['name'] . '
'; } // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: send-html-form-data.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['publish_actions']; // optional try { if (isset($_SESSION['localhost_app_token'])) { $accessToken = $_SESSION['localhost_app_token']; } else { $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 (isset($_SESSION['localhost_app_token'])) { $fb->setDefaultAccessToken($_SESSION['localhost_app_token']); } else { // getting short-lived access token $_SESSION['localhost_app_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['localhost_app_token']); $_SESSION['localhost_app_token'] = (string) $longLivedAccessToken; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['localhost_app_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // getting basic info about user try { $profile_request = $fb->get('/me?fields=name,first_name,last_name'); $profile = $profile_request->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // redirecting user back to app login page header("Location: ./"); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($_POST['message'])) { $post = $fb->post('/me/feed', array('message' => $_POST['message'])); $post = $post->getGraphNode()->asArray(); echo $post['id']; } ?>
Message:
getLoginUrl('http://localhost.com/fbapp/', $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: send-notification-user.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = []; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; 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 echo 'Graph returned an error: ' . $e->getMessage(); unset($_SESSION['facebook_access_token']); echo ""; exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // sending notification to user $sendNotif = $fb->post('/' . $profile['id'] . '/notifications', array('href' => '?true=43', 'template' => 'click here for more information!'), 'APP_ACCESS_TOKEN'); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: single-multiple-posting-managed-groups.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['user_managed_groups', 'publish_actions']; // optionnal try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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']); } // redirect user back to app when page receives $_GET['code'] variable if (isset($_GET['code'])) { echo ""; exit; } // 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 ""; exit; } } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // get list of groups managed by user try { $requestGroups = $fb->get('/me/groups'); $groups = $requestGroups->getGraphEdge()->asArray(); } 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; } // post in single group managed by user foreach ($groups as $key) { if ($key['name'] == 'Funny Demons') { $groupId = $key['id']; } } try { $requestPost = $fb->post('/' . $groupId . '/feed', array('message' => 'this message field must come from user-end as Facebook strictly prohibits the pre-filled message field')); $post = $requestPost->getGraphNode()->asArray(); } 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; } // get response of single posting print_r($post); // post in all groups managed by user foreach ($groups as $key) { try { $requestMultiPost = $fb->post('/' . $key['id'] . '/feed', array('message' => 'this message field must come from user-end as Facebook strictly prohibitsf the pre-filled message field')); $multiPost = $requestMultiPost->getGraphNode()->asArray(); } 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; } } // get response for multiple posting print_r($multiPost); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: tag-friends-in-photo.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://WEBSITE.com/fbapp/'); $permissions = ['publish_actions', 'user_friends']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // getting all friends of user $friends = $fb->get('/me/taggable_friends'); $friends = $friends->getGraphEdge()->asArray(); // getting random friend out of all friends $totalFriends = count($friends); $random = rand(0, $totalFriends); $random1 = rand(0, $totalFriends); $random2 = rand(0, $totalFriends); // tag a friend in a photo $uploadPhoto = $fb->post("/me/photos", array('url' => 'https://pbs.twimg.com/profile_images/762704058243219457/aLbu-kMF.jpg')); $uploadPhoto = $uploadPhoto->getGraphNode()->asArray(); $tagInPhoto = $fb->post('/' . $uploadPhoto['id'] . '/tags', array('tag_uid' => $friends[$random]['id'])); // tag multiple friends in a photo $tags = []; $tag['tag_uid'] = $friends[$random]['id']; $tags[] = $tag; $tag['tag_uid'] = $friends[$random1]['id']; $tags[] = $tag; $tag['tag_uid'] = $friends[$random2]['id']; $tags[] = $tag; $uploadPhoto = $fb->post("/me/photos", array('url' => 'https://pbs.twimg.com/profile_images/762704058243219457/aLbu-kMF.jpg')); $uploadPhoto = $uploadPhoto->getGraphNode()->asArray(); $tagInPhoto = $fb->post('/' . $uploadPhoto['id'] . '/tags', array('tags' => $tags)); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: tag-friends.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12' ]); $helper = $fb->getRedirectLoginHelper(); // app directory could be anything but website URL must match the URL given in the developers.facebook.com/apps define('APP_URL', 'http://sohaibilyas.com/fbapp/'); $permissions = ['publish_actions', 'user_friends']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived 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; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } // redirect the user back to the same page if it has "code" GET variable if (isset($_GET['code'])) { header('Location: ./'); } // validating user access token try { $user = $fb->get('/me'); $user = $user->getGraphNode()->asArray(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); session_destroy(); // if access token is invalid or expired you can simply redirect to login page using header() function exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // getting all friends of user $friends = $fb->get('/me/taggable_friends'); $friends = $friends->getGraphEdge()->asArray(); // getting random friend out of all friends $totalFriends = count($friends); $random = rand(0, $totalFriends); // posting on facebook and tagging friend with it $post = $fb->post('/me/feed', array('message' => 'my message', 'tags' => $friends[$random]['id'])); // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl(APP_URL, $permissions); echo 'Log in with Facebook!'; } ================================================ FILE: upload-photo-on-timeline.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['email', 'publish_actions']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; exit; } } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } try { // message must come from the user-end $data = ['source' => $fb->fileToUpload(__DIR__.'/photo.jpg'), 'message' => 'my photo']; $request = $fb->post('/me/photos', $data); $response = $request->getGraphNode()->asArray(); } 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; } echo $response['id']; // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; } ================================================ FILE: validating-access-token.php ================================================ 'APP_ID', 'app_secret' => 'APP_SECRET', 'default_graph_version' => 'v2.12', ]); $helper = $fb->getCanvasHelper(); $permissions = ['email']; // optional try { if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { $_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 ""; } 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 logged-in user try { $request = $fb->get('/me?fields=name,email'); $profile = $request->getGraphNode()->asArray(); } 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; } echo $profile['name']; // Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token'] } else { $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl('https://apps.facebook.com/APP_NAMESPACE/', $permissions); echo ""; }