2011-03-06 132 views
0

嘿傢伙 我只是試圖從Facebook的DemoApp實施Facebook的SDK本身到我的應用程序。我基本上從demoApp複製了所有內容,但當我嘗試登錄到Facebook時遇到問題。iPhone Facebook的SDK的SDK登錄問題

我按下登錄按鈕,然後facebook應用程序打開。我授權我並按OK。然後我重定向到我的應用程序,但然後fbDidLogin()方法不被調用。我還在我的視圖控制器中定義了我的應用程序ID,並在信息文件中定義了URL架構。

我錯過了什麼嗎?

謝謝, 乾杯, Doonot

+0

你傳遞給權限數組是什麼? 您是否確定fbDidLogin通過查找NSLog語句被調用?如果不是那麼如何? 你是否實現了所有以下處理程序(使用NSLog語句): fbDidNotLogin fbDidLogout – kennbrodhagen 2011-03-06 14:29:13

+0

是的,通過檢查日誌,我也有一個標籤,如果登錄狀態更改應該更新。在initWithNibName我通過這個: _permissions = [[NSArray arrayWithObjects:@「read_stream」,@「offline_access」,零] retain];是的,處理程序已經實現了!就像在DemoApp – doonot 2011-03-06 14:31:57

回答

0

好的,經過一番嘗試,我找到了答案。我使用Interface Builder來設置我的標籤欄應用程序。我不得不以編程方式更改,以便在標籤欄的應用程序有它實現Facebook登錄方法視圖控制器的引用:

... 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
     settingsController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil]; 
... 

吉姆提到的,我忘了實現我的應用程序代理自定義URL方案。感謝settingsViewController我簡單地加入:

// this method is needed by the facebook login procedure 
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    return [[settingsController facebook] handleOpenURL:url]; 
} 

就是這樣,在這些更改後,我終於可以登錄到Facebook。

乾杯, Doonot

0

fbDidLogin()不是一個目標C的方法。這是你在代碼中的方式嗎?

您是否在應用程序委託中處理了自定義URL方案?

+0

該死的,我想我錯過了應用程序委託中的部分: - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {[controller facebook] handleOpenURL:url]; }我基本上在應用程序委託類中有一個tabBarController,是否必須以編程方式設置tabbarcontroller以便爲Facebook登錄頁面定義我的視圖控制器? – doonot 2011-03-06 14:39:29

+0

你只需要讓應用程序委託可以訪問'Facebook'類的實例,或者調用一個方法即可。 – Jim 2011-03-06 14:46:13

+0

你能更精確一點嗎?當我嘗試這個: - (BOOL)應用程序:(UIApplication *)應用程序handleOpenURL:(NSURL *)url { return [[tabBarController facebook] handleOpenURL:url]; } 然後,應用程序崩潰是顯而易見的。但是那個tabBarController是目前在應用程序委託類中可用的唯一控制器。 – doonot 2011-03-06 14:50:37