2013-01-01 154 views
2

我已經在我的iPhone應用程序中創建了Facebook身份驗證,因此我遵循this教程 。但是,除了一行代碼,也就是Facebook SDK問題

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    [FBSession.activeSession handleDidBecomeActive]; 
} 

當我用這個,這是一個錯誤顯示:

爲 'FBSession' 不可見@interface聲明選擇 handleDidBecomeActive

但仍然認證工作正常,而我點擊登錄按鈕,問題是我的認證窗口只是顯示「基本信息」 - 我需要訪問「您的名義」也

 My authentication window is    I need to authenticate 
       like this     like this (as in FB tutorial) 

enter image description hereenter image description here

廣東話找出錯誤,會不會是在Facebook應用程序創建或iPhone編碼我驗證錯誤。如果有人得到這個錯誤,請幫我澄清一下

+0

您正在使用哪個facebook SDK版本?如果我沒有記錯,'handleDidBecomeActive'是Facebook SDK 3.1中的新功能。 –

+1

是的..我使用的是Facebook iOS 6 SDK(Facebook SDK 3.1)。 –

+0

我不能用'handleDidBecomeActive'重複你的問題。1 SDK,我的測試項目使用它編譯時沒有任何警告或錯誤只導入''。 –

回答

1

編寫一個測試項目,我不能重複你的錯誤信息;

No visible @interface for 'FBSession' declares the selector handleDidBecomeActive 

與Facebook SDK 3.1.1編譯時(沒有3.1方便測試)。這似乎與版本相關,因爲handleDidBecomeActive在3.1版本中是新的,並且消息與編譯器沒有看到選擇器有關。

另外,關於您的許可問題; 3.1版本中的權限系統已被更改爲不允許您同時請求讀取和寫入權限。從3.1 migration documentation引用;

您現在需要申請單獨閱讀和發佈許可(和順序)。最有可能的是,當應用程序啓動並且用戶首次登錄時,您將請求讀取權限進行個性化。稍後,如果適用,您的應用程序可能會在要將數據發佈到Facebook時請求發佈權限。

我可以請求登錄的讀取權限(這是您所看到的),但正如您所看到的,您無法同時請求發佈權限。如果我像SDK暗示的那樣,稍後請求該權限,它似乎按照它應該的方式工作。

+0

的原因,請大家看看 的http:// stackoverflow.com/questions/13973635/facebook-in-iphone-app –

0

我使用了你只在iOS 6及以上版本中編寫的代碼。 你應該試試這個代碼:

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    if ([[[UIDevice currentDevice] systemVersion]integerValue] >= __IPHONE_6_0) { 
     [FBSession.activeSession handleDidBecomeActive]; 
    } 

} 
+0

如果您不調用'handleDidBecomeActive',則需要以其他方式實現'applicationDidBecomeActive:'以正確處理應用切換。 –

+0

它顯示了同樣的錯誤:( 你覺得這是我已經發布entier代碼在這個問題上我的問題(沒有「後代表你的」)?? –

0

我知道這是一箇舊帖子,但我覺得這可能會幫助遇到同樣問題的人,所以我在這裏發佈我的解決方案。我正在使用FacebookSDK v3.1,並且今天遇到了同樣的問題。這是因爲我在「目標搜索路徑」中仍舊有舊的FacebookSDK v3.0路徑。只要確保在目標搜索路徑中輸入了正確的FacebookSDK路徑,編譯器就不會抱怨。