4

我想使用 FB.login() 使用 FB Javascript SDK 更改登录 + 注册流程。

现在 FBML 方式运行良好:

<fb:login-button registration-url="<?php echo $config["base_url"]; ?>test.php" size="small"></fb:login-button>

单击以下代码上方的按钮会触发 div 以显示注册插件

FB.getLoginStatus(function(response) {
        if (response.status === 'not_authorized') {
          // show registration form   
           document.getElementById('reg').style.display = "block";
          }
         });     

// registration form placed in a div 
<div style="display:none;width:540px;position:relative;margin:0 auto;" id="reg">     
<fb:registration fields="name,birthday,gender,location,email" 
redirect uri="http://app.sunosunaao.com/test.php" width="530">
</fb:registration>
</div>

但是一旦用户从 FB.login() 登录,有没有办法显示上述 div?因为如果我使用 FB.login(),它直接进入 Facebook 权限页面,并且一旦连接,以下函数中的条件是

response.status === 'connected'

hence the registration plugin is not triggered 

FB.getLoginStatus(function(response) {
        if (response.status === 'not_authorized') {
          // show registration form   
           document.getElementById('reg').style.display = "block";
          }
         });    

关于我如何替代的任何想法

<fb:login-button registration-url="<?php echo $config["base_url"]; ?>test.php" size="small"></fb:login-button> with FB.login();
4

1 回答 1

0

您可以在您的 javascript 代码中附加事件,如本文所述 http://developers.facebook.com/blog/post/534/

    FB.Event.subscribe('auth.login', function(response) {
      // this code is executed after login success
    });
    FB.Event.subscribe('auth.logout', function(response) {
      // this code is executed after logout success 
    });

我希望这会有所帮助。

于 2013-01-30T13:46:18.010 回答