2016-11-14 4 views
0

私は以前の投稿をすべて見て、解決策を見つけることができません。私は接続しており、電子メール以外はすべて返っています。私はそれを受け取ることができる最新のバージョンでいくつかの変更がありますか?あなたは次のコード行を使用して許可を書く場合は、電子メール、名前、ID、生年月日を取得しますFBSDKがユーザーの電子メールを返さない

-(void)checkFacebookFriends { 

[FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 


    if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"user_friends"]) { 

     [self makeFacebookFriendsRequest]; 
     // TODO: publish content. 
    } else { 

     FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init]; 
     loginManager.loginBehavior = FBSDKLoginBehaviorWeb; 
     [loginManager logInWithReadPermissions:@[@"email", @"user_friends", @"public_profile"] 
          fromViewController:self 
             handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
              //TODO: process error or result. 

              if (error == nil) { 
               [self makeFacebookFriendsRequest]; 
              } 
              else { 
               NSLog(@"no"); 

              } 

             }]; 
    } 
}]; 

} 

-(void)makeFacebookFriendsRequest { 

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
           initWithGraphPath:[NSString stringWithFormat:@"%@/friends", [FBSDKAccessToken currentAccessToken].userID] 
           parameters:@{@"fields": @"email,name,picture"} 
           HTTPMethod:@"GET"]; 
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, 
             id result, 
             NSError *error) { 


    NSMutableArray *temp = [NSMutableArray new]; 

    for (NSDictionary *user in [result objectForKey:@"data"]) { 
     FacebookUser *fbUser = [[FacebookUser alloc] initWithDictionary:user error:nil]; 
     [temp addObject:fbUser]; 

    } 
//  self.facebookUsers = temp; 

//  [self.tableView reloadData]; 

    // Handle the result 
}]; 
} 
+0

Facebookは携帯電話番号での登録のみを許可しています。だから、あなたは電子メールアドレスを取得していない可能性があります。 –

+0

@BhavukJain私は私のチームと一緒にテストしています。彼らはまだそれを見ていない、通常の電子メールを登録しています。 –

+0

ログインしているアカウントの電子メールアドレスは取得できますが、友人のアドレスは取得できません。 –

答えて

0

- ここ

は、関連するコードです。

[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" 
                 parameters:@{@"fields": @"id, name, email, gender,picture,age_range,birthday"}] 
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError * error) 
         { 
          if (!error) 
          { 
           NSString *fbAccessToken = [FBSDKAccessToken currentAccessToken].tokenString; 
           NSLog(@"the result is%@",result); 


          NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
          [prefs setObject:[result objectForKey:@"name"] forKey:@"Facebook_NAME"]; 
          [prefs setObject:[result objectForKey:@"email"] forKey:@"Facebook_EMAIL"]; 
          [prefs setObject:fbAccessToken forKey:@"Facebook_TOKEN"]; 
          [prefs synchronize]; 

         } 
         else 
         { 
          NSLog(@"%@", [error localizedDescription]); 

         } 

        }]; 
関連する問題