2017-01-27 2 views
0

Ich habe Schwierigkeiten, die Informationen eines Nutzers über das Facebook SDK zu erhalten.Benutzerinfo von Facebook nicht erhalten (Geburtstag, Arbeit, Ausbildung)

Ich versuche, den Geburtstag, Arbeit und Bildung zu bekommen.

ich dies mit:

let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"education, work, email, id, name, first_name, last_name, birthday, gender"]) 

Das nennen bietet keine Ausbildung, Arbeit oder Geburtstag.

Ich habe die folgenden Berechtigungen durch Facebook genehmigt:

  • user_birthday
  • user_education_history
  • user_work_history

Wenn ich versuche, über diese Werte im Codebeispiel zu verwenden, die App-Abstürze mit einem nicht vorhandenen Feld:

type (User), com.facebook.sdk:FBSDKGraphRequestErrorGraphErrorCode=100, com.facebook.sdk:FBSDKGraphRequestErrorParsedJSONResponseKey={ 
    body =  { 
     error =   { 
      code = 100; 
      "fbtrace_id" = CVy14JLKraa; 
      message = "(#100) Tried accessing nonexisting field (user_birthday) on node type (User)"; 
      type = OAuthException; 
     }; 
    }; 
    code = 400; 
}} 

Wenn ich versuche, eine Grafik-Anforderung mit einem Benutzer-ID gegen mich zu verwenden:

let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "/\(fbid)", parameters: ["fields":"user_birthday"]) 
        graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in ... 

ich auch den gleichen Fehler:

message = "(#100) Tried accessing nonexisting field (user_birthday) on node type (User)"; 

Irgendwelche Vorschläge?

+0

Es gibt kein Feld namens user_birthday. – WizKid

+0

http://Stackoverflow.com/a/40082252/6656894 verweisen Sie auf diese Antwort –

+0

http://Stackoverflow.com/a/40816501/6656894 und verweisen Sie auch auf diese Antwort –

Antwort

0

Bitte tun Sie wie folgt. Könnte Arbeit für Sie sein.

#define K_Field @"fields" 
#define K_Permission @"email,location, birthday, name, link" 
#define K_ID @"id" 
#define K_Name @"name" 
#define K_DOB @"birthday" 
#define K_Email @"email" 



     FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
     [login logOut]; 
     login.loginBehavior = FBSDKLoginBehaviorWeb; 

     [login 
     logInWithReadPermissions: @[K_Email] 
     fromViewController:self 
     handler:^(FBSDKLoginManagerLoginResult *user, NSError *error) { 
      if (error || user.isCancelled) { 
       NSLog(@"Process error"); 
      } else { 
       if ([FBSDKAccessToken currentAccessToken]) { 
        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{K_Field: K_Permission}] 
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
          if (!error) { 
           NSLog(@"fetched user:%@", result); 
           //Done login 
          } 
         }]; 
       } 
      } 
     }]; 

Bitte stellen Sie sicher, richtiges Stichwort Gleiche wie facebook official docs verwenden

0

Es ist möglich, die Facebook Graph API unter Verwendung von dem Benutzer id zu sammeln und die Öffentlichkeit Details aus dem Graph API Zugang bekommen:

$fb->get('/me?fields=name,first_name,last_name,email,birthday'); 
Verwandte Themen