2012-10-01 78 views
3

我使用Facebook SDK 3.0在我的應用程序之一,和一切工作正常。它將用戶重定向到Facebook應用程序(如果已安裝)或移動網站(如果未安裝)。問題與Facebook SDK iOS 6的原生支持3.1

上週我整合了新的SDK 3.1有一個與Facebook帳戶的原生集成。要做到這一點,我從移動:

[FBSession openActiveSessionWithPermissions:permissions 
           allowLoginUI:YES 
          completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 
    /* My code here */ 

}]; 

現在已不建議新:

[FBSession openActiveSessionWithPublishPermissions:permissions 
            defaultAudience:FBSessionDefaultAudienceFriends 
             allowLoginUI:YES 
           completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 
    /* My code here */ 

}]; 

在iOS 5,什麼都沒有改變,完善。在iOS 6上它工作在我的設備上,但我有一些用戶報告系統詢問他們的權限,但他們無法連接。

事實上,我有一個視頻,其中甚至單擊「確定」,當系統詢問Facebook的權限,應用程序不要訪問帳戶,甚至沒有在系統偏好設置註冊。

下面是視頻:http://www.youtube.com/watch?v=JUHF9KNNg6M

如果我從系統中刪除該帳戶,一切就像之前的預期在Facebook上SDK 3.0。

已經有人也遇到了這個問題?或者你有什麼想法如何解決這個問題?

+0

嗨,我有同樣的問題,你找到一個解決方案? – Eyal

+0

@Ludovic我不能在.m文件中寫入FBSession。我必須爲此導入哪個框架? – Hitarth

回答

2

您是否分開您的權限請求?

「iOS 6中內置的Auth對話框爲開發者提供了一種原生的方式,可以在他們的應用程序中使用Facebook登錄,而無需製作快速應用程序切換器。注意,要使用iOS 6本地身份驗證,應用程序需要改變他們的方式請求用戶的權限 - 應用程序必須將他們對讀寫權限的請求分開,Facebook SDK for iOS支持這些功能,並幫助開發人員使用它們構建適用於多個iOS版本和設備配置的應用程序。「

https://developers.facebook.com/docs/howtos/ios-6/

+0

好吧,所以我們必須使用openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:在我們需要的時候第二次登錄並請求其他權限,例如寫入publish_stream。 –

0

我認爲你的問題可能是你沒有指定Facebook上的包標識符。 我也是這樣,一旦我在developers.facebook.com中指定了包標識符,一切都開始正常工作。