0

我正在尝试检查用户是否安装了我的应用程序。流程如下;

    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.

我好像没有访问令牌来检查权限。它显示以下错误。

    Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user

我的代码是这样的。我还回显 $access_token 以查看我是否确实收到了访问令牌。是的,我确实得到了代码。但不知何故,我仍然得到错误。

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"
}

请帮忙。

4

1 回答 1

1

您不需要将 in 传递$access_tokenapi()函数。尝试像这样调用 API:

$permissions = $facebook->api("/me/permissions");

如果这不起作用,您可能需要将 Facebook SDK 升级到最新版本。access_token此外,在查询 API 以获取用户权限之前,检查是否实际返回是值得的。如果用户尚未登录并已批准应用程序,您的代码将失败。将代码更改为:

$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"
    }
}
于 2012-05-24T11:49:34.993 回答