在我的应用程序中,我要求用户提供电子邮件许可:
<fb:login-button perms="email">Give me your email</fb:login-button>
弹出窗口打开,用户允许。
现在我想将用户重定向到一个特殊的链接/页面,我有一些代码可以从facebook获取电子邮件。怎么做?
这就是我所拥有的JS代码所以,它是登录:
FB.Event.subscribe('auth.login', function() {
window.location.reload();
});
我尝试了“auth.sessionChange”和“auth.statusChange”事件,但它们也会在登录/ logut上触发。
我认为我需要的每个FB按钮都有自己的回调函数!?
THX
答案 0 :(得分:0)
您需要使用Graph API来获取用户的电子邮件地址。有关Graph here
的更多信息答案 1 :(得分:0)
好的,然后试试这个:
FB.login(function(result) {
if(result.session) {
location.href = '/login_successful.php'; // Or whatever
}
},
{perms: 'email'});
答案 2 :(得分:0)
我亲爱的捕获登录事件并将用户重定向到你想要的地方
window.fbAsyncInit = function() { FB.init({appId: "XXXXXX", status: true, cookie: true, xfbml: true}); FB.getLoginStatus(function(response) { if (response.session) { //here you can redirect the user where do you want to redirect it self.location.href="http://www.yoursite.com/login.php"; } else { } }); FB.Event.subscribe("auth.login", function(response) { window.location.reload(); }); FB.Event.subscribe("auth.logout", function(response) { // to logout self.location.href="http://www.yoursite.com/logout.php"; }); }; (function() { var e = document.createElement("script"); e.type = "text/javascript"; e.src = document.location.protocol + "//connect.facebook.net/en_US/all.js"; e.async = true; document.getElementById("fb-root").appendChild(e); }());
答案 3 :(得分:0)
这两个答案都很有用(对不起,由于声誉而无法投票 - 我是新用户), 但我这样解决了:
<script type="text/javascript">
function chkmyperm() {
jQuery.get("/user/chkmyperm", function(data){
if(data==1) {
window.location.reload();
}
});
}
</script>
<fb:login-button perms="email" onlogin="chkmyperm()">E-Mail Adresse freigeben</fb:login-button>
使用onlogin属性我回调一个自己的函数,如果用户给了我他的电子邮件权限,则检查(使用ajax调用,调用php-sdk API),如果是,我刷新页面。我这样做是因为这种行为应该仅仅是处理电子邮件权限而不是登录/注销等其他事件。