2013-06-01 17 views
7

eine Frage über Facebook SDK für iOS zu nehmen.Facebook iOS SDK, Benutzer-ID

Wenn ich eine aktive Sitzung habe, wie bekomme ich nur die Benutzer-ID?

Gibt es eine einfache Möglichkeit, diese ID zu erhalten, ohne diesen Beispielcode zu verwenden?

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

Antwort

8

Dies ist der beste Weg, Benutzer-ID zu nehmen, anstatt direkt mit Punkt zugreifen.

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

Ich suche nach einer Möglichkeit, die ID des Benutzers zu erhalten, ohne eine neue Anfrage in Facebook (insbesondere, so würde ich keine asynchrone Anfrage verwenden) – Safari

+1

@Safari Ich habe diese Methode verwendet. Es verbraucht sehr wenig Zeit. Es ist kein Flaschenhals. – Dalinaum

+0

Es ist ein großes Problem für mich, weil es asynchron läuft ... Jetzt muss ich warten, bis es irgendwie fertig ist. – 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; 
} 

, wenn Sie bereits auf Facebook eingeloggt sind.

+0

Eigentlich ganz einfach ;-). – TheEye

+0

Hier ist die Dokumentation dazu https://developers.facebook.com/docs/reference/ios/current/class/FBSDKAccessToken/ – Nazir