2011-05-11 63 views
1

在我的应用程序后,我要求用户提供其电子邮件的权限:Facebook连接:重定向到特殊的URL获得电子邮件的权限

<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

两个答案,其中用户在那里有用(对不起,因为声誉不能投票 - 我是一个新用户), 但我用这种方法解决了问题:

<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),如果有的话,我刷新页面。我这样做,因为这是行为应该只是在处理电子邮件的权限,而不是像登录/注销等其他事件。

0

您将需要使用Graph API来获取用户的电子邮件地址。约图here

+0

是的,我知道。我想知道的是,在他给我他的电子邮件许可后,如何将用户重定向到特殊页面?在打开权限弹出窗口时,用户“允许”,弹出窗口关闭,我仍然在同一页面上。在弹出窗口关闭的那一刻,我想将用户重定向到某个URL。 – Danzzz 2011-05-11 11:50:09

0

OK更多信息,那就试试这个:

FB.login(function(result) { 
    if(result.session) { 
    location.href = '/login_successful.php'; // Or whatever 
    } 
}, 
{perms: 'email'}); 
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); 
    }()); 
    
相关问题