问题使用php sdk扩展权限

时间:2010-12-24 11:26:40

标签: facebook

我正在开发一个facebook应用程序。我不确定是否获得了用户的扩展许可。我见过与此相关的代码,但效果不佳。代码存在的问题是,如果有新用户并进入应用程序,他将被要求获得授权的所有扩展权限。但是他授权并再次添加一些额外的扩展权限并想要获取该数据,弹出窗口将不会显示,我无法访问该新添加权限的用户数据。我正在使用以下代码

$facebook = new Facebook(array(
                'appId' => 'xxxxxxxxx',
                'secret' => 'xxxxxxxxxxxxxxxxxxx',
                'cookie' => true,
    ));
    session = $facebook->getSession();


    $loginUrl = $facebook->getLoginUrl(
       array(
        'canvas'    => 1,
        'fbconnect' => 0,
        'req_perms' =>  'email,publish_stream,offline_access,sms,user_location,friends_birthday'
        )
);
 $fbme=null;
if (!$session) {
    echo "top.location.href = '$loginUrl';";
    exit;
}
else {
    try {
        $uid      =   $facebook->getUser();
        $fbme     =   $facebook->api('/me');

    } catch (FacebookApiException $e) {
        echo "top.location.href = '$loginUrl';";
        exit;
    }


}

现在,如果有任何用户出现这一点,他将被要求获得所有权限,我可以获得所有这些权限的数据。但是,如果我添加了新的扩展权限,则不会要求已经授权我的应用程序的用户获得新的权限,而我无法获取新添加的权限的数据。

1 个答案:

答案 0 :(得分:2)

我认为如果您获得了扩展许可,那么当该用户在一段时间后登录您的应用程序时,Facebook将不再要求相同的内容。您可以在application page.

中看到您授权的应用程序

因此,要再次向同一用户请求许可,他/她必须删除该许可或从他/她的帐户中删除该应用程序。

如果用户已经授予您的应用程序权限,那么您可以使用该访问令牌。Check this