2011-04-27 57 views
1

我一直在使用Three20開始記錄的問題,建設FB連接iPhone的iOS應用,FB與Three20連接 - 在Facebook的

我想打電話給[facebook authorize:permissionsArray delegate:self];

,但它不會做任何事情,因爲FB的功能試圖將子視圖添加到Three20應用程序中不存在的主窗口。我試圖使用Safari認證,但它不會返回到我的應用程序並完成該過程。

是否有其他方式通過Three20 iOS應用程序登錄FB賬戶?

謝謝!

回答

2

我猜你提到的Safari驗證是Facebook API的單點登錄功能。如果你在模擬器中,它只是表現爲Safari。如果您使用的是安裝了Facebook應用程序的物理設備,它會將您轉到Facebook上的授權頁面,或者如果已獲得授權,您只需登錄即可。

我相信您在單點標記上丟失的那一段on設置回調URL並在.plist應用配置文件中爲您的應用註冊該URL。

Facebook已經對讓一切設置一個相當詳細的教程: https://developers.facebook.com/docs/guides/mobile/#ios

特定的URL需要在這個文件中唯一標識 與iOS應用程序進行註冊 。創建一個新行 命名的URL類型與單個項目, URL計劃,包含單個 值,fbYOUR_APP_ID(文字 字符fb後跟您的應用程序 id)。

我也使用Three20框架和Facebook SDK,兩者應該很好地一起工作。雖然有足夠的步驟讓Facebook SDK在第一時間啓動並運行,但要實現起來有點棘手。

+0

謝謝!對我很好... – 2011-04-28 16:15:00

+0

另一個問題 - 當過程完成時,fbDidLogin方法不會被激發。在登錄後做任何其他選項完成?謝謝! – 2011-04-28 16:58:55

+1

需要檢查的兩件事:確保你的App正在處理來自Facebook SSO的url回調,你需要在你的主應用程序委託中定義方法:' - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *) url'同時確保你正在使用facebook實例的對象實現協議'FBSessionDelegate',並且在調用authorize時正確設置了facebook實例上的委託:'[facebook authorize:kAppId permissions:permissions delegate:self];' – Ryan 2011-04-28 18:15:07