我是iOS开发新手,我正尝试将我的应用程序与Facebook集成。 我已经通过登录的步骤,现在我正在尝试获取用户朋友列表。保存Facebook的好友 - iOS
我需要在';'分隔列表中的用户ID所以我在的地方下面的代码:
-(NSMutableString *) getUserFacebookFriendsList
{
NSMutableString *userFBFriends = [[NSMutableString alloc] init];
[FBRequestConnection startWithGraphPath:@"/me/friends"
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
for (NSDictionary *friendData in [result objectForKey:@"data"])
{
NSMutableString *friendId = [friendData objectForKey:@"id"];
[userFBFriends appendString:friendId];
[userFBFriends appendString:@";"];
NSString *FBFriendsList = [NSString stringWithFormat:userFBFriends];
}
}];
return userFBFriends;
}
现在,当我调试电话,我可以看到,我得到了用户的朋友,但问题是,当我得到回报statemtn,好像我的变量“ userFBFriends“为空......
任何想法我在这里失踪?
下面,我得到了我要留言下面的代码,我现在也许有人可以帮我这个问题的答案。
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
user:(id<FBGraphUser>)user {
NSLog(@"test login facebook");
NSLog(@"the facbook user borthday is : %@",[user birthday]);
NSLog(@"The FACEBOOK user ID is : %@", [user objectID]);
NSLog(@"### running FB sdk version: %@", [FBSettings sdkVersion]);
// FBRequestConnection* conn = [[FBRequestConnection alloc] init];
NSLog(@"User's friends list as will be sent to the server is : %@", **XXXXXXX**);
}
-(void) getUserFacebookFriendsList {
NSMutableString *userFBFriends = [[NSMutableString alloc] init];
[FBRequestConnection startWithGraphPath:@"/me/friends" parameters:nil HTTPMethod:@"GET" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
for (NSDictionary *friendData in [result objectForKey:@"data"])
{
NSMutableString *friendId = [friendData objectForKey:@"id"];
[userFBFriends appendString:friendId];
[userFBFriends appendString:@";"];
// This will call -didLoadFacebookFriends on the main thread.
__weak __typeof(self) weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf didLoadFacebookFriends:userFBFriends];
});
}
}];
}
-(void) didLoadFacebookFriends:(NSMutableString *)facebookFriends {
// Do your stuff here.
NSLog(@"The list of friends is : %@",facebookFriends);
}
现在我的问题是我怎么能得到朋友列表中,实际上做的调用getUserFacebookFriendsList的主要功能要打印的? 因为它再次好像我在函数“loginViewFetchedUserInfo”中执行的NSLOG调用在甚至生成好友列表之前正在运行。 如果您在上面的代码中看到我用BOLD标记了它。
在此先感谢您的帮助!
塞巴斯蒂安感谢您的伟大的答案。它帮助我更好地理解它,但我仍然遇到问题,我只是用一些新的代码和问题编辑了我的原始帖子。我会感谢任何帮助。 –
不客气。我更新了我的代码段。 –
谢谢塞巴斯蒂安!我想我现在都准备好了!非常感谢您的快速响应和帮助。 –