Facebook JS SDK要求太多权限

时间:2013-04-23 17:45:01

标签: javascript facebook sdk permissions

我设置了一个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);
    }());

即使我删除了电子邮件范围请求,它仍然声称我是在用户的公开个人资料和朋友列表之后。之前没有遇到此问题,它曾用于显示友好的可自定义对话框,您可以在应用>设置>权限区域中预览。

我无法找到可能导致此问题的任何其他设置。任何想法,提前谢谢......

2 个答案:

答案 0 :(得分:3)

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

中介绍

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

我们正在恢复在Facebook比赛中手动填写的电子邮件字段,这可能会导致更多的参与,而不是被迫在访客面孔中发出这样一个不祥的声音对话,并让人们正确地说'不,谢谢'

答案 1 :(得分:0)

你看到

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

行?替换/我/电子邮件,这应该工作。

我是通过Graph API得到的。