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'});
}
非常感谢您的回复,很抱歉您提出了重复的问题。