【问题标题】:Facebook App permission requests get disable by the user using the new authentication用户使用新的身份验证禁用 Facebook 应用程序权限请求
【发布时间】:2011-10-23 06:06:35
【问题描述】:

我正在使用此代码进行应用身份验证:

    //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(网上找的一些图)

如何将其切换回旧的权限对话框?在用户登录我的应用程序之前,这只是 1 个对话框,而不是 2-3 个对话框。

【问题讨论】:

    标签: php authentication facebook-graph-api permissions


    【解决方案1】:
    1. 我不确定新应用是否可以切换回来,即使可以...不建议这样做,因为所有应用都会很快迁移到新应用。
    2. 即使使用 Zynga 应用,用户也可以随时从他/她的应用隐私设置中撤销这些权限
    3. 您需要处理权限被撤销的情况。此博客 post 对此进行了解释。

    【讨论】:

    • 但是我看到很多创建新应用的人仍然会得到旧的权限对话框,这是为什么呢?
    • 也许他们禁用了 Enhanced Auth Dialog 选项。同样,应该处理用户撤销权限而不是试图隐藏它的情况! :-)
    • 如果禁用增强的身份验证对话框会发生什么?它会在不久的将来成为 facebook 的唯一选择(默认情况下)吗?谢谢
    • 嗯,它被放置在 Migrations 部分...所以我认为这将是唯一的选择,是的。
    猜你喜欢
    • 2015-04-16
    • 2017-01-30
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    相关资源
    最近更新 更多