ฉันได้สร้างแอปพลิเคชัน django ด้วย Facebook ที่เชื่อมต่อกับแอปพลิเคชัน ตอนนี้เมื่อฉันคลิกที่ปุ่มเข้าสู่ระบบ Facebook หน้า oauth จะปรากฏขึ้น เมื่อฉันให้ชื่อผู้ใช้และรหัสผ่าน มันจะถูกปิดโดยไม่เปลี่ยนเส้นทางเพจไปยังเพจใดๆ เลย แต่เมื่อฉันเปิดเพจ FB ในแท็บใหม่ ฉันเห็นหน้าเข้าสู่ระบบ FB ของผู้ใช้รายนั้น ดังนั้นการเข้าสู่ระบบจึงทำงานได้อย่างสมบูรณ์ แต่ฉันไม่เข้าใจว่าจะให้เปลี่ยนเส้นทางหน้าได้ที่ไหนหลังจากผ่านการตรวจสอบสิทธิ์แล้ว ใครสามารถช่วยฉันแก้ปัญหานี้ได้ นี่คือวิธีที่ฉันตั้งค่าในหน้าการตั้งค่าของฉัน ? ฉันไม่พบ URL โทรกลับที่จะตั้งค่าในตัวเลือก
App ID
xxxx
API Key
xxxx
App Secret
xxx
Site URL
http://localhost:8080/redirect_url/
Site Domain
localhost
Canvas Page
http://apps.facebook.com/registrationforms/
Canvas URL
http://apps.facebook.com/registrationforms/
Secure Canvas URL
Canvas FBML/iframe
iframe
รหัสสำหรับการเข้าสู่ระบบ : โค้ดชิ้นนี้ถูกแทรกลงใน registerForm html page(login) :
{% load facebookconnect %}
{% facebook_connect_login_button %}
{% facebook_connect_script %}
และรหัส facebookconnect.py คือ:
from django import template
from django.conf import settings
from django.core.urlresolvers import reverse
register = template.Library()
class FacebookScriptNode(template.Node):
def render(self, context):
return """
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>
<script type="text/javascript"> FB.init("%s", "%s");
function facebook_onlogin() {
var uid = FB.Facebook.apiClient.get_session().uid;
var session_key = FB.Facebook.apiClient.get_session().session_key;
var expires = FB.Facebook.apiClient.get_session().expires;
var secret = FB.Facebook.apiClient.get_session().secret;
var sig = FB.Facebook.apiClient.get_session().sig;
fb_connect_ajax(expires, session_key, secret, uid, sig);
}
function fb_connect_ajax(expires, session_key, ss, user, sig) {
var post_string = 'expires=' + expires;
post_string = post_string + '&session_key=' + session_key;
post_string = post_string + '&ss=' + ss;
post_string = post_string + '&user=' + user;
post_string = post_string + '&sig=' + sig;
$.ajax({
type: "POST",
url: "%s",
data: post_string,
success: function(msg) {
window.location = '%s'; //.reload()
}
});
}
</script>
""" % (settings.FACEBOOK_API_KEY, reverse('xd_receiver'), reverse('facebook_connect_ajax'), settings.LOGIN_REDIRECT_URL)
def facebook_connect_script(parser, token): return FacebookScriptNode()
register.tag(facebook_connect_script)
class FacebookLoginNode(template.Node):
def render(self, context):
return "<fb:login-button onlogin='facebook_onlogin();'></fb:login-button>"
#return "<fb:login-button onclick="openPopup('https://graph.facebook.com/oauth/authorize?client_id=a0acfd122e64fc21cfa34d47369f0c97&redirect_uri=http://mysite.com/mypage&display=popup');"></fb:login-button>"
def facebook_connect_login_button(parser, token): return FacebookLoginNode()
register.tag(facebook_connect_login_button)