2011-10-23 95 views
0

我使用此代码为应用验证新的认证获得通过禁用用户:Facebook应用的权限请求使用

//Obtain the access_token with publish_stream permission 
if(empty($_REQUEST["code"])){ 
    $dialog_url= "http://www.facebook.com/dialog/oauth?" 
    . "client_id=" . $app_id 
    . "&redirect_uri=" . urlencode($post_login_url) 
    . "&scope=publish_stream,user_birthday"; 
    echo("<script>top.location.href='" . $dialog_url 
    . "'</script>"); 
} 
else { 
     $code = $_REQUEST["code"]; 
    $token_url="https://graph.facebook.com/oauth/access_token?" 
    . "client_id=" . $app_id 
    . "&client_secret=" . $app_secret 
    . "&code=" . $code 
    . "&redirect_uri=" . urlencode($post_login_url); 
    $response = file_get_contents($token_url); 
    $params = null; 
    parse_str($response, $params); 
    $access_token = $params['access_token']; 
} 

在新的Facebook的身份验证,用户必须选择的一个选项许可请求并在点击“登录”按钮后取消它。例如,用户可以禁用对publish_stream或user_birthday访问的请求,并仍然登录到我的应用程序。 我看到Zynga和其他许多人仍然在使用,看起来老的认证请求,如:

http://i.stack.imgur.com/ESigT.png(一些图片,我在网上找到)

但由于某些原因,在过去2周我的要求对于权限对话框更改为新的: http://i52.tinypic.com/qstm6g.png(我在网上找到了一些图片)

如何将其切换回旧权限对话框?这是只有一个单一的对话框,而不是2-3对话框,直到用户登录到我的应用程序。

回答

0
  1. 我不确定新应用是否可以切换回来,即使可以...也不推荐,因为所有应用都将立即迁移到新应用。
  2. 即使使用Zynga应用程序,用户也可以始终从他/她的应用程序隐私设置中撤销这些权限
  3. 您需要处理权限被撤销时的情况。这在这个博客post解释。
+0

但我看到许多人创建新的应用程序仍然会得到旧的权限对话框,为什么? –

+0

也许他们已禁用* Enhanced Auth Dialog *选项。同样,**你**应该处理这种情况,当用户撤销权限**而不是**试图隐藏它! :-) – ifaour

+0

如果生病禁用增强型身份验证对话框会发生什么情况?是否会在不久的将来成为Facebook唯一的选择(默认)?谢谢 –