2013-06-01 114 views
7

關於Facebook的iOS SDK的問題。Facebook iOS sdk取用戶ID

如果我有一個活動的會話,我怎麼才能得到用戶ID?

有沒有一種簡單的方法來獲取此ID而不使用此示例代碼?

if (FBSession.activeSession.isOpen) { 
     [[FBRequest requestForMe] startWithCompletionHandler: 
     ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *aUser, NSError *error) { 
      if (!error) { 
       // I can take the user id.. 
      } 
     }]; 
    } 

回答

8

這是獲取用戶ID的最佳方式,而不是使用點直接訪問。

[[FBRequest requestForMe] startWithCompletionHandler: 
     ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *aUser, NSError *error) { 
      if (!error) { 
       NSLog(@"User id %@",[aUser objectForKey:@"id"]); 
      } 
     }]; 
+0

我正在尋找一種方法來獲取用戶的ID,而不必在Facebook上運行一個新的請求(特別是,所以我不會使用異步請求) – Safari

+1

@Safari我曾經使用這種方法。它消耗的時間很少。這不是瓶頸。 – Dalinaum

+0

對我來說這是一個很大的問題,因爲它是異步運行的......現在我必須等待它完成。 – sudo

1
[FBRequestConnection startWithGraphPath:@"/me" 
          parameters:nil 
          HTTPMethod:@"GET" 
         completionHandler:^(
              FBRequestConnection *connection, 
              NSDictionary *result, 
              NSError *error 
             ) { 
          /* handle the result */ 
          _fbId = [result objectForKey:@"id"]; 
         }]; 
6
+ (NSString *)activeUserId { 
    return [FBSDKAccessToken currentAccessToken].userID; 
} 

如果您已經登錄Facebook上。

+0

其實很簡單;-)。 – TheEye

+0

這裏是它的文檔https://developers.facebook.com/docs/reference/ios/current/class/FBSDKAccessToken/ – Nazir