我已經做了很多Facebook文檔的閱讀,但我對會話對象的角色很困惑。例如,與方法:Facebook Connect中的會話對象混淆iPhone
session = [FBSession sessionForApplication:myApiKey secret:myAppSecret delegate:self];
那我該怎麼辦與同時退還給我的會話對象,當想必我需要等待委託回調,以做什麼?
其次......在稍後執行我的應用時,當用戶授權我在上次執行期間訪問他們的帳戶時,如何獲得對會話對象的引用,以便我可以連接到他們的Facebook帳戶併發布信息狀態等?文檔提到[session resume],但不要說會話引用應該來自哪裏。 (並調用[[FBSession會話]恢復]編譯,但不起作用。)
謝謝。
你說過,「據我所知,在每次啓動應用程序時,都應該使用+ sessionForApplication:secret:delegate創建會話對象,然後調用[會話繼續]。」我的問題:有效會話是來自此方法的返回值,還是傳遞給委託的會話對象?如果是前者,爲什麼我需要委託人? (由於委託會導致它崩潰,所以傳遞nil)。如果是後者,返回的會話對象又有什麼意義?謝謝。 – 2010-02-09 07:49:55
兩者都是相同的對象,因此同樣有效。委託方法通常包含委託對象作爲參數,以便程序員可以識別委託消息是關於哪個對象。至於你的問題,「爲什麼我需要一個委託?」:因爲創建會話與登錄不同。正如我所說,創建會話對象後,你需要調用FBLoginDialog,然後FBSession將使用委託方法在用戶實際登錄時通知您。此時,您可以繼續使用會話。 – 2010-02-09 11:39:19
謝謝...但是如果我知道用戶已經登錄?那麼我不需要顯示登錄對話框。我不想每次都彈出Facebook對話框(如果我打電話給FBDialog,如果用戶已經登錄,它會彈出,然後關閉,這會讓人分心)。 – 2010-02-09 17:57:48