我已将新的权限请求(publish_stream)添加到我们的facebook连接登录按钮。对于之前未经此许可授权我们的应用的现有用户,我遇到了问题。如果他们在到达我们的网站时从Facebook登出,一切正常,当他们点击“Facebook Connect”时,他们会获得弹出窗口,要求他们获得新的许可。
但是,如果他们在到达我们的网站时已经登录到Facebook,他们会自动登录并且不会被要求获得这个新的publish_stream权限。即使已经登录到facebook场景,我如何强制弹出窗口出现并请求他们获得此新权限?
由于
答案 0 :(得分:2)
为me/permissions
调用图谱API并确保他们已订阅该权限。如果他们不是,那么将他们引导到登录弹出窗口,询问您需要的所有权限。
答案 1 :(得分:1)
很抱歉为已回答的问题添加了答案,但我想添加一些需要一段时间才能理解的信息。
基本上,您只需要让用户再次登录,系统会提示他们接受更新的权限(假设您已在应用程序设置中更新了这些权限)。
例如,当您获得登录URL:
$login_url = $facebook->getLoginUrl($params = array('scope' => "publish_stream,user_groups"));
您可以向范围添加权限。在我的应用程序中,我意识到我需要添加“user_groups”来获取组列表。因此,如果groups数组返回空(在查询api之后),那么我回应了这个:
echo "The current user appears to have no groups, if this is incorrec try to <a href=".$login_url.">login again</a>";