2013-06-01 3 views
7

вопрос о Facebook sdk для iOS.Facebook iOS sdk принять идентификатор пользователя

Если у меня есть активный сеанс, как я могу получить только идентификатор пользователя?

Есть ли простой способ получить этот идентификатор без использования этого примера кода?

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

ответ

8

Это лучший способ получить идентификатор пользователя, а не прямой доступ с помощью точки.

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

Я ищу способ получить идентификатор пользователя без необходимости запуска нового запроса в 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

Смежные вопросы