2015-07-21 100 views
5

就像標題所說,這是一個錯誤還是真的有可能?我使用[FBSDKAccessToken currentAccessToken].tokenString來檢查現有的Facebook會話是否存在,然後我將使用[FBSDKProfile currentProfile].userID獲取會話的userId。 但是有時我遇到[FBSDKAccessToken currentAccessToken].tokenString有一個值,但是[FBSDKProfile currentProfile]是零。FBSDKProfile currentProfile爲零,但FBSDKAccessToken currentAccessToken的值爲

我將其用於我的應用程序的自動登錄功能。

感謝您的回覆!

所以我有這樣的代碼片段:

if ([FBSDKAccessToken currentAccessToken].tokenString){ 
//proceed to auto login since Facebook is still logged in 
     NSLog(@"Facebook user id: %@",[FBSDKProfile currentProfile].userID) 
    } 

該日誌的回報是零。

+1

請提供您所看到的錯誤,了恰當的代碼片段,以便人們更好地理解和回答您的問題 –

+0

我編輯了我的帖子。謝謝!我希望提供的信息夠了。我只想澄清是否有可能擁有現有的令牌,但Facebook個人資料爲零。 – Vilowapo

+0

代碼是不夠的,在這裏有一個完整的示例項目會更有幫助。您是否檢查過令牌實際上是否有效,一旦您最終出現上述情況,即您有令牌但FBSDKProfile爲零? –

回答

1
if ([FBSDKAccessToken currentAccessToken].tokenString) { 
    [FBSDKProfile enableUpdatesOnAccessTokenChange:YES]; 
    NSLog(@"Facebook user id: %@",[FBSDKProfile currentProfile].userID); 
} 

你需要調用[FBSDKProfile enableUpdatesOnAccessTokenChange:YES]使其自動觀測更改[FBSDKAccessToken currentAccessToken]

+0

你也可以用它來獲取圖像 [[FBSDKProfile currentProfile] imageURLForPictureMode :FBSDKProfilePictureModeNormal size:CGSizeMake(100,100)] –