Facebook graph api 应用程序权限不适用,且“身份验证”对话框不反映这些权限

Facebook graph api 应用程序权限不适用,且“身份验证”对话框不反映这些权限,facebook-graph-api,authentication,permissions,facebook-javascript-sdk,Facebook Graph Api,Authentication,Permissions,Facebook Javascript Sdk,我有以下问题,提前感谢您对这个问题的帮助 我在Apps>[NAME-OF-THE-APP]>Permissions()中配置了我的应用程序,当用户第一次使用该应用程序时请求“发布操作”,如下图所示 问题是Auth对话框没有反映此配置,因此没有请求“发布\u操作”的权限 我尝试了不同的“用户和朋友权限”和“扩展权限”,但Auth对话框始终保持不变 我使用JavaScript SDK,下面是代码,我正在尝试在画布中访问我的应用程序 <script> window.fbAsyncIni

我有以下问题,提前感谢您对这个问题的帮助

我在
Apps>[NAME-OF-THE-APP]>Permissions
()中配置了我的应用程序,当用户第一次使用该应用程序时请求“发布操作”,如下图所示

问题是Auth对话框没有反映此配置,因此没有请求“发布\u操作”的权限

我尝试了不同的“用户和朋友权限”和“扩展权限”,但Auth对话框始终保持不变

我使用JavaScript SDK,下面是代码,我正在尝试在画布中访问我的应用程序

<script>
window.fbAsyncInit = function() {
    FB.init({appId:'398977410174164',status:true,cookie:true,xfbml:true});

    function testAPI() {
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me', function(response) {
            console.log('UserID, ' + FB.getAuthResponse()['userID'] + '.');
            console.log('Access token, ' + FB.getAuthResponse()['accessToken'] + '.');
        });
    }

    function login() {
        FB.login(function(response) {
            if (response.authResponse) {
                testAPI();
            } else {
                // cancelled
            }
        });
    }

    FB.getLoginStatus(function(response) {
        if(response.status === 'connected'){
            var signedRequest = response.authResponse.signedRequest;
        }else if(response.status === 'not_authorized'){
            login();
        }else{
            login();
        }
    });
};

(function(d){
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js, ref);
}(document));
</script>

window.fbAsyninit=函数(){
init({appId:'398977410174164',状态:true,cookie:true,xfbml:true});
函数testAPI(){
log('欢迎!获取您的信息…);
FB.api('/me',函数(响应){
log('UserID',+FB.getAuthResponse()['UserID']+');
log('Access token',+FB.getAuthResponse()['accessToken']+');
});
}
函数登录(){
FB.登录(功能(响应){
if(response.authResponse){
testAPI();
}否则{
//取消
}
});
}
FB.getLoginStatus(函数(响应){
如果(response.status===“已连接”){
var signedRequest=response.authResponse.signedRequest;
}else if(response.status===“未授权”){
登录();
}否则{
登录();
}
});
};
(职能(d){
var js,id='facebook jssdk',ref=d.getElementsByTagName('script')[0];
if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
ref.parentNode.insertBefore(js,ref);
}(文件);
再次感谢您提供的帮助。

[第X次:]

这些设置仅适用于从应用程序中心登录。(它们还曾经通过认证的推荐影响登录,现在已经不推荐了。)


但是,每当您自己触发登录时(当您使用FB.login调用时),您必须在那里指定权限,然后通过
scope
参数指定权限。

在您的login()函数中使用以下代码:

function login() {
    FB.login(function(response) {
        if (response.authResponse) {
            testAPI();
        } else {
            // cancelled
        }
    }, {scope:'publish_actions'});
}

非常感谢您的回复,很抱歉您提出了重复的问题。