Django SocialRegistration将无法连接到FB.login()

时间:2011-02-20 23:42:13

标签: javascript django facebook oauth-2.0

使用FB Connect two days of fighting后,我已将Socialregistration集成到我的项目中,但当我点击Facebook连接按钮时,没有任何反应。最奇怪的部分是它连接一次 - 但从那时起它就没有了。

Onclick调用facebookConnect,FB.login在handleResponse处中断(第二个警报不会弹出)。非常感谢任何帮助。

谢谢!

<div id="fb-root">
    {% if is_https %}<script src="https://connect.facebook.net/en_US/all.js"></script>{% else %}<script src="http://connect.facebook.net/en_US/all.js"></script>{% endif %}
</div>
<script>
  // initialize the library with the API key
  FB.init({ apiKey: '{{ facebook_api_key }}', status: true, cookie: true, xfbml: true});
  function facebookConnect(form){
        alert('testsss');
        function handleResponse(response){
                    alert('test2');
          form.submit();
      }
      FB.login(handleResponse,{perms:'publish_stream,sms,offline_access,email,read_stream,status_update'});
  }


</script>


{% load socialregistration_tags %}
{% comment %}
<fb:login-button autologoutlink="true" perms="email,user_birthday,status_update,publish_stream"></fb:login-button>
{% endcomment %}

<form class="connect-button" name="login" method="post" action="{% if logged_in %}{% url facebook_connect %}{% else %}{% url facebook_login %}{% endif %}">
{% social_csrf_token %}
{% if next %}
    <input type="hidden" name="next" value="{{ next }}" />
{% endif %}
<input type="image" onclick="alert('tests'); facebookConnect(this.form);return false;" src="http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_large_long.gif" />
</form>

2 个答案:

答案 0 :(得分:0)

解决方案是我将Fb JS文件列出两次 - 一次在我的base.html&amp;一旦在正在加载的页面上。课程 - 仅列出一次JS文件。

答案 1 :(得分:0)

恕我直言使用FB Connect从JavaScript进行操作非常棘手,尤其是当您需要将状态更新发布到FB等时。这是因为它太容易进入您网站上的用户之间没有相关性的情况并且用户已登录到FB。

这就是为什么我个人倾向于使用基于重定向的oauth并从后端使用FB Graph API,在那里我可以确保一切正常。