2012-12-09 146 views
3

我正在將Facebook SDK 3.1集成到我的iOS 5應用程序。 Facebook的登錄後,我不得不這樣的查詢來獲得用戶信息如何緩存Facebook用戶信息與Facebook登錄IOS應用

NSString *query = @"SELECT uid, name, pic_big,username FROM user where uid = me()"; 

NSDictionary *queryParam = 
[NSDictionary dictionaryWithObjectsAndKeys:query, @"q", nil]; 

[FBRequestConnection startWithGraphPath:@"/fql" 
          parameters:queryParam 
          HTTPMethod:@"GET" 
         completionHandler:^(FBRequestConnection *connection, 
              id result, 
              NSError *error) { .... 

現在有兩個問題,這種方法:

1 - 用戶剛剛等着讓自己從Facebook認證和 現在只是之後他必須等待他的基本檔案信息 才能從網上獲取。

-Q-如何通過Facebook登錄網絡電話獲取此信息?

-2-當用戶重新打開從登錄屏幕的應用程序,如果FBSession仍然是開放的和有效的Facebok的將重新驗證該用戶,但我還是必須從網上得到他的基本
輪廓信息...

-Q-如何緩存用戶的基本配置文件信息在我的應用程序? FBSession對象中是否有可以緩存用戶信息的ID?

在此先感謝。 Moeen。

回答

0

1 - 用戶剛剛等着讓自己從Facebook認證和 現在剛過,他必須再次等待讓他的基本輪廓 信息從網絡中獲取。

-Q-如何通過Facebook登錄網絡電話獲取此信息?

正確使用時,原始的等待時間應該是最小的。您不能將API調用「追加」到登錄請求。 Facebook曾經有一個preload_fql工具,但不再支持。

-2-當用戶重新打開從登錄屏幕的應用程序,如果FBSession仍然是開放的和有效的Facebok的將重新驗證該用戶,但我會 還是要得到他的網站的基本個人資料...

-Q-如何緩存用戶的基本配置文件信息在我的應用程序? FBSession對象中是否有可以緩存用戶信息的ID?

這是你的應用程序設計的問題。我的建議是創建一個NSMutableDictionary作爲一個類的屬性,並稱之爲cached_user_data什麼的。將用戶數據保存在那裏。

+0

嗨@Tommy Crush感謝您的反饋。關於Q2,我可以將用戶的數據保存在一些字典中,但爲此我需要一些ID。而我的問題是我無法在FBSession對象中找到任何id將它與當前用戶關聯起來。我的應用程序可以被不同的Facebook用戶使用,所以我需要從FBSession獲得一些ID,所以一旦用戶登錄,我可以從緩存字典中獲取他的信息,而不是從網上再次獲取它。 –

+0

如果你有他們的個人資料信息,你應該有他們的ID。只需按ID緩存所有數據,而不必區分登錄的用戶。如果緩存太大,只需清空其中的一部分即可。 –

+0

當facebooks用戶登錄時,我得到FBSession對象,然後我必須進行web api調用以獲取其ID和其他個人資料信息(@「SELECT uid,name,pic_big,username FROM user where uid = me()」;)。 ..在這一點上,我得到用戶的ID ...我想要的是避免此Web API調用...爲了避免這種Web API調用,我必須從FBSession對象獲取當前登錄信息的一些信息,以便我可以從我的緩存中顯示用戶的配置文件信息,而且我不必進行另一個Web API調用。 –

相關問題