Facebook JS SDK要求太多权限

Facebook JS SDK demanding too many permissions

本文关键字:太多 权限 JS SDK Facebook      更新时间:2023-09-26

我设置了一个Facebook选项卡来请求用户电子邮件的许可-这工作得很好,但是弹出的对话框说'Appname想要访问您的公共个人资料,好友列表和电子邮件地址。'

这将降低应用程序的参与度-我不想要公开的个人资料或好友列表。

代码如下,使用伪appId:

 var useremail;
    window.fbAsyncInit = function() {
        FB.init({
            appId: '01234567890', 
            cookie: true, 
            xfbml: true,
            oauth: true
        });
        FB.login(function(response) {
            if (response.authResponse) {
                FB.api('/me', function(response) {
              useremail=response.email;
              //Do stuff
                });
            } else {
                //No access
            }
        },{scope: 'email'});
    };
    (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
    }());

即使我删除了email范围请求,它仍然声称我在获取用户的公开个人资料和好友列表。以前没有这个问题,它用来显示友好的自定义对话框,你可以在应用程序>设置>权限区域预览。

我找不到任何其他可能导致此问题的设置。

我把这个标记为回答,这个问题在http://www.insidefacebook.com/2012/12/12/how-changes-to-facebooks-app-auth-process-affect-developers/

简而言之,在通过Javascript SDK登录时显示的权限对话框中,Facebook已将"基本信息"重命名为"公共个人资料和好友列表"。

我们正在恢复在Facebook竞赛中手动填写电子邮件字段,这可能会导致更多的参与,而不是被迫在访问者面前扔出这样一个不祥的对话框,让人们正确地说"不,谢谢"。

你看到

FB.api('/me', function(response) {

行吗?把/me替换为/email,这样就可以了。

我从图形API中得到这个