我正在开发一个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; } }
现在,如果有任何用户出现这一点,他将被要求获得所有权限,我可以获得所有这些权限的数据。但是,如果我添加了新的扩展权限,则不会要求已经授权我的应用程序的用户获得新的权限,而我无法获取新添加的权限的数据。
答案 0 :(得分:2)
我认为如果您获得了扩展许可,那么当该用户在一段时间后登录您的应用程序时,Facebook将不再要求相同的内容。您可以在application page.
中看到您授权的应用程序因此,要再次向同一用户请求许可,他/她必须删除该许可或从他/她的帐户中删除该应用程序。
如果用户已经授予您的应用程序权限,那么您可以使用该访问令牌。Check this