我有一個作爲iFrame構建的Facebook app。我使用的是JavaScript客戶端API通過加載:Facebook API:FB.Connect.requireSession問題
在我的初始化代碼,我用的是requireLogin
方法,以確保用戶已授權的應用程序。我發現這是必要的,以便能夠爲記分牌收集用戶的姓名,頭像等。下面是一個典型的代碼片段:
FB_RequireFeatures(["Connect","Api"], function() {
FB.Facebook.init("...API_KEY_HERE...", "xd_receiver.htm");
var api = FB.Facebook.apiClient;
api.requireLogin(function() {
api.users_getInfo(
FB.Connect.get_loggedInUser(),
["name", "pic_square", "profile_url"],
function(users, ex) {
/* use the data here */
});
});
});
這導致了iframe重定向導致Facebook的授權屏幕到我的應用程序iframe中加載。這看起來很垃圾並且對用戶有些混淆,例如有兩個Facebook酒吧等。
問題1:有什麼我可以做的,以清除這個同時仍然作爲一個iFrame實現,仍然使用JavaScript API?
FB.ApiClient.requireLogin
這種方法已被棄用 - 使用 FB.Connect.requireSession代替。
我的經驗,雖然當我用FB.Connect.requireSession
代替api.requireLogin
它永遠不會被調用。我更喜歡這樣做的推薦方式,但我掙扎着,無法找到一種方法來實現它。我嘗試爲其他兩個參數添加各種參數,但看起來沒有任何效果。我的期望是,這種方法將加載在我的應用程序iFrame中的對話框中,並帶有類似的授權信息。
問題2:我錯過了什麼讓FB.Connect.requireSession
正確提示用戶進行授權?
最後,在遊戲結束時,應用程序會提示用戶通過FB.Connect.streamPublish
將他們的分數發佈到他們的流中。這導致我...
問題3:我是否正在載入正確的功能?我是否需要「Api」和「連接」?我錯過了其他人嗎?
**注意:**授予的答案是將我推向正確方向的答案,但我自己的答案有代碼段,這是解決方案。 – mckamey 2010-02-21 17:35:39