Reputation: 237
I want to get all group names which I joined using facebook sdk v5
.
I've got the group names which I created but how can I get group names which I joined. I am using that code below.
$fb->setDefaultAccessToken($accessToken);
$res = $fb->get( '/me/groups' );
$feed = $res->getDecodedBody();
var_dump( $feed );
It is giving me usergroup that he created which I didn't want.
How can I make it work?
Upvotes: 0
Views: 723
Reputation: 11
$app_id = 'yourid'; //localhost
$app_secret = 'yoursecret';
$required_scope = 'public_profile, publish_actions, user_groups, email'; //Permissions required
$redirect_url = 'http://yoururl'; //FB redirects to this page with a code
require_once __DIR__ . "/facebook-php-sdk-v4-4.0-dev/autoload.php"; //include autoload from SDK folder
//import required class to the current scope
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRedirectLoginHelper;
FacebookSession::setDefaultApplication($app_id , $app_secret);
$helper = new FacebookRedirectLoginHelper($redirect_url);
try {
$session = $helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
die(" Error : " . $ex->getMessage());
} catch(\Exception $ex) {
die(" Error : " . $ex->getMessage());
}
//if user wants to log out
if(isset($_GET["log-out"]) && $_GET["log-out"]==1){
unset($_SESSION["fb_user_details"]);
unset($_SESSION["email"]);
echo '<meta http-equiv="refresh" content="1; url=/postlogin.php">';
}
//Test normal login / logout with session
if ($session){ //if we have the FB session
//get user data
$user_profile = (new FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(GraphUser::className());
$user_groups = (new FacebookRequest($session, 'GET', '/me/groups'))->execute()->getGraphObject(GraphUser::className());
//do a regular session here for access token.
$accessToken = $session->getAccessToken();
$longLivedAccessToken = $accessToken->extend();
$_SESSION["fb_user_groups"] = $user_groups->asArray();
$group_id = ( isset( $_SESSION["fb_user_groups"]["id"] ) )? $_SESSION["fb_user_groups"]["id"] : "";
$group_name = ( isset( $_SESSION["fb_user_groups"]["name"] ) )? $_SESSION["fb_user_groups"]["name"] : "";
//save session var as array
$_SESSION["fb_user_details"] = $user_profile->asArray();
$user_id = ( isset( $_SESSION["fb_user_details"]["id"] ) )? $_SESSION["fb_user_details"]["id"] : "";
$user_name = ( isset( $_SESSION["fb_user_details"]["name"] ) )? $_SESSION["fb_user_details"]["name"] : "";
$user_email = ( isset( $_SESSION["fb_user_details"]["email"] ) )? $_SESSION["fb_user_details"]["email"] : "";
if(isset($_SESSION["fb_user_details"]))
{
print '<pre>';
print_r($_SESSION["fb_user_details"]);
print '</pre>';
print '<pre>';
print_r($_SESSION["fb_user_groups"]);
print '</pre>';
}
else
{
//display login url
$login_url = $helper->getLoginUrl( array( 'scope' => $required_scope ) );
//not logged in goes here
?>
<center><a href="<?php echo $login_url; ?>">Login</a>
<?php
}
}
requires the facebook sdk i cut all the db inserting i have in my script out but this will help give you an idea of how to do it. this will get you all user info and users groups in array just did it 10/14/15
Upvotes: 0