我有一个按钮,我想在点击它时连接到Facebook,我想要在我的facebook中的所有朋友。
我可以访问Facebook并获得Facebook令牌并将其保存在数据库中。
我使用CONTROLLER A中的以下代码连接到Facebook,但在CONTROLLER B中,我想要获取好友列表。
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
user:(id<FBGraphUser>)user {
NSString *fbAccessToken = [FBSession activeSession].accessTokenData.accessToken;
NSLog(@"Token is %@", fbAccessToken);
DataManager *dataManager = [[DataManager alloc] init];
/*flag is for identification, that from which account user has logged in, either facebook or
from account which he made using this app.
flag = facebook //if user is signed in using his facebook account
flag = myuser //if user is signed in using his own app account
*/
[dataManager saveloginData:fbAccessToken username:@"NO DATA" password:@"NO DATA" flag:@"facebook"];
// NSLog(@"Veer Suthar %@",user);
status = YES;
[self loginWithFacebookDirectly];
// here we use helper properties of FBGraphUser to dot-through to first_name and
// id properties of the json response from the server; alternatively we could use
// NSDictionary methods such as objectForKey to get values from the my json object
self.labelFirstName.text = [NSString stringWithFormat:@" %@", user.first_name];
// setting the profileID property of the FBProfilePictureView instance
// causes the control to fetch and display the profile picture for the user
self.profilePic.profileID = user.id;
NSLog(@"USER IS %@", user);
// self.loggedInUser = user;
}
答案 0 :(得分:0)
试试这样....
//获取好友列表
-(void)addList:(FBSession *)session
{
NSString* fql = [NSString stringWithFormat: @\"select uid from user where uid == %lld\", session.uid];
NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@\"query\"];
sessionView = session;
[[FBRequest requestWithDelegate:self] call:@\"facebook.friends.get\" params:params];
}
- (void)request:(FBRequest*)request didLoad:(id)result
{
if(myList==nil)
{
NSArray* users = result;
myList =[[NSArray alloc] initWithArray: users];
for(NSInteger i=0;i<[users count];i++) {
NSDictionary* user = [users objectAtIndex:i];
NSString* uid = [user objectForKey:@\"uid\"];
NSString* fql = [NSString stringWithFormat: @\"select name from user where uid == %@\", uid];
NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@\"query\"];
[[FBRequest requestWithDelegate:self] call:@\"facebook.fql.query\" params:params];
}
}
else
{
NSArray* users = result;
NSDictionary* user = [users objectAtIndex:0];
NSString* name = [user objectForKey:@\"name\"];
txtView.text=[NSString localizedStringWithFormat:@\"%@%@,\n\",txtView.text,name];
}
}
//列出在线好友
- (void)session:(FBSession*)session didLogin:(FBUID)uid {
NSString *fql = [NSString localizedStringWithFormat:@\"SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=%lld) AND 'active' IN online_presence\",uid];
myList=nil;
NSDictionary *params =[NSDictionary dictionaryWithObject:fql forKey:@\"query\"];
[[FBRequest requestWithDelegate:self] call:@\"facebook.fql.query\" params:params];
}
- (void)request:(FBRequest*)request didLoad:(id)result {
if(myList==nil) {
NSArray* users = result;
myList =users;
for(int i=0;i<[users count];i++) {
NSDictionary* user = [users objectAtIndex:i];
NSString* name = [user objectForKey:@\"uid\"];
NSDictionary* params = [NSDictionary dictionaryWithObjectsAndKeys:name,@\"uids\",@\"name\",@\"fields\",nil];
[[FBRequest requestWithDelegate:self] call:@\"facebook.users.getInfo\" params:params];
}
}
else {
NSArray* users = result;
NSDictionary* user = [users objectAtIndex:0];
NSString* name = [user objectForKey:@\"name\"];
NSLog(name);
}
}
希望它会帮助你......
答案 1 :(得分:0)
试试这个:
- (void)userFriendList {
NSString *query =@"SELECT name, pic_square FROM user WHERE uid in (SELECT uid2 FROM friend where uid1 = me())";
// Set up the query parameter
NSDictionary *queryParam =
[NSDictionary dictionaryWithObjectsAndKeys:query, @"q", nil];
// Make the API request that uses FQL
[FBRequestConnection startWithGraphPath:@"/fql"
parameters:queryParam
HTTPMethod:@"GET"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (error) {
NSLog(@"Error: %@", [error localizedDescription]);
} else {
NSLog(@"Result: %@", result);
// show result
self.friendList = (NSArray *) [result objectForKey:@"data"];
}
}];
}
以上self.friendList
中的NSMutableArray
这是我在数组中获取朋友列表然后放入UITableView