我正在構建一個使用Django在iframe中加載的Facebook畫布應用程序。我希望登錄過程類似於Zynga所做的那樣工作。在這種方法中,如果您未登錄,您將被重定向到Facebook登錄頁面,然後轉到應用程序的權限請求頁面(沒有任何彈出窗口)。使用新圖形API在Facebook畫布應用程序中進行身份驗證
至於我可以告訴Zynga的必須使用FBML,只是轉發到的URL看起來像:
http://www.facebook.com/login.php?api_key=[api_key]&canvas=1&fbconnect=0&next=[return_url]
反正有沒有實現的Python應用程序類似的效果加載在iframe中?
有一種方法here,顯示瞭如何使用新的PHP SDK來實現正確的重定向,但我試圖用新的Python SDK其中只有方法:
def get_user_from_cookie(cookies, app_id, app_secret):
"""
Parses the cookie set by the official Facebook JavaScript SDK.
cookies should be a dictionary-like object mapping cookie names to
cookie values.
...
"""
我有一些工作使用的JavaScript SDK和get_user_from_cookie方法代碼:
<div id="fb-root">
<script src="http://connect.facebook.net/en_US/all.js"></script>
</div>
<script type="text/javascript">
FB.init({ apiKey: 'apikey', status: true, cookie: true, xfbml: true});
FB.Event.subscribe('auth.login', function(response) {
// Reload the application in the logged-in state
window.top.location = 'http://apps.facebook.com/myapp/';
});
</script>
<fb:login-button>Install MyApp</fb:login-button>
這種方法的問題是,它需要用戶點擊一個按鈕來登錄,然後通過彈出認證的屏幕工作。 (注:如果我直接調用的FB.login一個彈出也會發生)
所以...有沒有使用JavaScript SDK重定向到登錄頁面,而不是加載它作爲一個彈出的方法嗎?
感謝您的幫助! --Eric
您可以使用javascript中的top.location將它們重定向到授權頁面 – BeRecursive 2010-11-11 12:06:30
@BeRecursive:是的。這正是我所說的。 – 2010-11-11 12:09:12
爲什麼在編碼時將其重定向到具有該代碼的頁面,然後將其注入頁面? – BeRecursive 2010-11-11 12:10:39