我有一个问题....我实际上正在使用FB javascript SDK开发一个facebook应用程序。在我的申请中,我需要电子邮件许可才能进一步处我正在使用
FB.Connect.showPermissionDialog( “电子邮件”); 但有些对话框没有出现......这是我的代码
<script>
appid = '*************';
name = 'Palmchip Test App';
href = 'https://apps.facebook.com/*********/';
FB.init({
appId:appid, cookie:true,
status:true, xfbml:true
});
FB.getLoginStatus(function(response) {
if (response.session) {
alert("You are logged in...");
FB.Connect.showPermissionDialog("email", function(perms) {
if (!perms) {
alert("no access");
} else {
alert("accessed...");
}
});
}
else {
top.location.href='https://graph.facebook.com/oauth/authorize?client_id='+appid+'&redirect_uri='+href+'&display=page';
}
});
</script>
警告说你已登录... 工作正常,但没有任何反应......
答案 0 :(得分:0)
ouath: true
FB.getLoginStatus()
会返回不同的对象:response.authResponse
答案 1 :(得分:0)
试试此代码块
FB.init({appId: <?= APP_ID ?>, status: true, cookie: true, xfbml: true, oauth:true});
function getin(){
FB.login(function(response) {
if (response.authResponse) {
var regurl = "/login";
location.href=regurl;
} else {
var regurl = "/logout";
window.location.href=regurl;
}
}, {scope:'email'});
}
因此,当您调用 getin()函数时,如果当前用户已经为您提供了电子邮件地址,那么他将不会为他执行任何操作,只需将其重定向到 / login url,但是如果用户是新用户,则他/她将看到一个弹出框,询问电子邮件地址,一旦他/她允许您可以使用图形或fql拉取电子邮件地址。 FB.login 中的BTW响应具有用户ID,access_toke和一些更有用的数据,因此请保存以供进一步使用。