Reputation: 315
I'm trying to check whether user has installed my application or not. The flow is as follow;
1. Check whether has installed or authorize my app
2. If yes, then direct user to play my app directly
If no, then direct user to see welcoming page to read term of use and privacy.
I seems like i dont have access token to check the permission. It show below error.
Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user
My code is like this. I also echo $access_token to see whether i did receive the access token or not. Yes, i did get the code. But somehow i still get the error.
require_once('src/facebook.php');
$app_id = "APP_ID";
$app_secret = "APP_secret";
// Init facebook api.
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => false,
));
$access_token = $facebook->getAccessToken();
//echo $access_token;
$permissions = $facebook->api("/me/permissions", $access_token);
if( array_key_exists('publish_stream', $permissions['data'][0]) ) {
// Permission is granted!
echo "App has been installed";
//then redirect to content page
} else {
echo "App has not been installed";
//then redirect user to welcoming page and let user read "term of use" and "privasy"
}
Please help.
Upvotes: 0
Views: 2459
Reputation: 15457
You don't need to pass in the $access_token
into the api()
function. Try calling the API like this:
$permissions = $facebook->api("/me/permissions");
If that doesn't work, you may need to upgrade the Facebook SDK to the latest version. Also, it's worth checking if the access_token
is actually returned before querying the API for the user's permissions. Your code will fail if the user isn't already logged in and has approved the app. Change the code to something like:
$access_token = $facebook->getAccessToken();
if ( $access_token ) {
$permissions = $facebook->api( "/me/permissions" );
if( array_key_exists('publish_stream', $permissions['data'][0]) ) {
// Permission is granted!
echo "App has been installed";
//then redirect to content page
} else {
echo "App has not been installed";
//then redirect user to welcoming page and let user read "term of use" and "privasy"
}
}
Upvotes: 1