gpt4 book ai didi

ios - 在 iOS 中获取 Facebook 好友列表

转载 作者:行者123 更新时间:2023-11-29 01:07:23 24 4
gpt4 key购买 nike

我正在尝试在我的应用中获取包含姓名、ID 等的 Facebook 好友列表。

- (IBAction)onFBLogin:(id)sender {
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login
logInWithReadPermissions: @[@"public_profile", @"email", @"user_friends"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
NSLog(@"Process error");
} else if (result.isCancelled) {
NSLog(@"Cancelled");
} else {
NSLog(@"%@", result);
[self getFBEmailAddress];
}
}];
}
-(void)getFBEmailAddress{
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me"
parameters:@{@"fields": @"picture, email, friends"}]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSString *pictureURL = [NSString stringWithFormat:@"%@",[result objectForKey:@"picture"]];
mFBId = [NSString stringWithFormat:@"%@",[result objectForKey:@"id"]];
NSLog(@"My Profile : %@", result);
NSLog(@"email is %@", [result objectForKey:@"email"]);

[self getFBFriendList];
}
else{
NSLog(@"%@", [error localizedDescription]);
}
}];
}
-(void)getFBFriendList{

NSString* graphPat = [[NSString alloc] initWithFormat:@"%@/friends", mFBId];

FBSDKGraphRequest *requestFriends = [[FBSDKGraphRequest alloc]
initWithGraphPath:graphPat
parameters:@{@"fields": @"id, name"}
HTTPMethod:@"GET"];
[requestFriends startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
if (!error && result)
{
NSArray *allFriendsResultData = [result objectForKey:@"data"];

if ([allFriendsResultData count] > 0)
{
for (NSDictionary *friendObject in allFriendsResultData)
{
NSString *friendName = [friendObject objectForKey:@"name"];
NSString *friendID = [friendObject objectForKey:@"id"];
NSLog(@"%@ : %@", friendID, friendName);

}
}
}

}];}

我已成功通过 Facebook 登录并获取我的个人资料。之后,我尝试通过好友图 api 获取好友列表。但当时只显示关注的好友数如下。

    friends =     {
data = (
);
summary = {
"total_count" = 2;
};
};
id = 60XXXXXX1295X;
picture = {
data = {
"is_silhouette" = 0;
url = "https://scontent.xx.fbcdn.net/hprofile-xfa1/v/t1.0-1/p50x50/1..._501957533...";
};
};

如何获取好友列表的完整信息,如 id、姓名等?如果有人已经实现,请帮助我。谢谢。

最佳答案

这对我有用。

NSMutableArray *completeList = [[NSMutableArray alloc] init];
[self fetchFacebookEachFriend:completeList withGrapPath:@"/me/friends" withCallback:^(BOOL success, NSMutableArray * fbList) {
//Finish get All Friends
fbListFinal(success, fbList);
}];


- (void)fetchFacebookEachFriend:(NSMutableArray *)completeList withGrapPath:(NSString *)graphPath withCallback:(returnFbList)fbList
{
NSDictionary *limitDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"first_name, last_name, middle_name, name, email", @"fields", nil];
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:graphPath parameters:limitDictionary HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (error) {
[[[UIAlertView alloc] initWithTitle:@"Alert!" message:@"Please connect to Facebook to find your friends" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
fbList(NO, completeList);
return;
}

//Add each friend to list
for (NSDictionary *friend in [result valueForKey:@"data"]) {
[completeList addObject:friend];
}

if ([result valueForKey:@"paging"] != nil && [[result valueForKey:@"paging"] valueForKey:@"next"] != nil) {
NSString *nextPage = [[result valueForKey:@"paging"] valueForKey:@"next"];
nextPage = [[nextPage componentsSeparatedByString:@"?"] objectAtIndex:1];
[self fetchFacebookEachFriend:completeList withGrapPath:[NSString stringWithFormat:@"me/friends?%@",nextPage] withCallback:fbList];
} else
fbList(YES, completeList);
}];
}

关于ios - 在 iOS 中获取 Facebook 好友列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36187514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com