2011-05-11 44 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); 
    }()); 
    
相關問題