Objective c 在ios 6.0中使用SLRequest获取Facebook好友列表
如前所述,我在ios 6.0中集成了facebook 但我无法使用SLRequest获取facebook好友列表。有人知道怎么做吗?我想在我的游戏中实现“与朋友一起玩”的功能Objective c 在ios 6.0中使用SLRequest获取Facebook好友列表,objective-c,facebook,ios6,social,Objective C,Facebook,Ios6,Social,如前所述,我在ios 6.0中集成了facebook 但我无法使用SLRequest获取facebook好友列表。有人知道怎么做吗?我想在我的游戏中实现“与朋友一起玩”的功能 谢谢我想它应该怎么工作 下面的代码对我来说很好 NSArray *accounts = [accountStore accountsWithAccountType:facebookAccountType]; ACAccount *face
谢谢我想它应该怎么工作 下面的代码对我来说很好
NSArray *accounts = [accountStore
accountsWithAccountType:facebookAccountType];
ACAccount *facebookAccount = [accounts lastObject];
NSString *acessToken = [NSString stringWithFormat:@"%@",facebookAccount.credential.oauthToken];
NSDictionary *parameters = @{@"access_token": acessToken};
NSURL *feedURL = [NSURL URLWithString:@"https://graph.facebook.com/me/friends"];
SLRequest *feedRequest = [SLRequest
requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:feedURL
parameters:parameters];
feedRequest.account = facebookAccount;
[feedRequest performRequestWithHandler:^(NSData *responseData,
NSHTTPURLResponse *urlResponse, NSError *error)
{
NSLog(@"%@",[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
}];
}
else
{
// Handle Failure
}
我在上面试过,我得到的只是朋友的数量,而不是它的详细数据。数据字典数组是空的吗?数据=();汇总={“总计数”=690;};关于这个有什么想法吗?对于上面的评论有什么想法得到同样的问题吗?非常感谢,帮助了我很多!这也对我起了作用。关键是将
@“read_friendlists”
添加到ACFacebookPermissionsKey
数组中。
-(void)getFacebookFriendsList
{
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
ACAccountStore *store = [[ACAccountStore alloc] init];
ACAccountType *facebookTypeAccount = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
//Replace with your Facebook.com app ID
NSDictionary *options = @{ACFacebookAppIdKey:kFacebookAppID, ACFacebookPermissionsKey:@[@"email", @"read_friendlists"],
ACFacebookAudienceKey:ACFacebookAudienceFriends};
[store requestAccessToAccountsWithType:facebookTypeAccount
options:options
completion:^(BOOL granted, NSError *error){
if(granted)
{
NSArray *accounts = [store accountsWithAccountType:facebookTypeAccount];
ACAccount *facebookAccount = [accounts lastObject];
NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"];
SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:meurl
parameters:nil];
merequest.account = facebookAccount;
NSURL *requestURL = [NSURL URLWithString:@"https://graph.facebook.com/me/friends"];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:requestURL parameters:@{@"fields":@"id, name, email, picture, first_name, last_name, gender, installed"}];
request.account = facebookAccount;
[request performRequestWithHandler:^(NSData *data,
NSHTTPURLResponse *response,
NSError *error) {
if(!error)
{
NSDictionary *list =[NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
if([list objectForKey:@"error"] != nil)
{
// if error occured e.g. Invalid Auth etc.
}
else
{
[self.arrayFriendsList removeAllObjects];
NSArray *dictFbFriend = [list objectForKey:@"data"];
for (NSDictionary *dict in dictFbFriend)
{
NSDictionary *pictureDataDict = [[dict objectForKey:@"picture"] objectForKey:@"data"];
Contacts *objContact = [[Contacts alloc] initWithName:[dict objectForKey:@"name"]
andEmail:nil
andFirstName:[dict objectForKey:@"first_name"]
andLastName:[dict objectForKey:@"last_name"]
andGender:[dict objectForKey:@"gender"] andPhotoPath:[pictureDataDict objectForKey:@"url"]
andIsInstalled:[dict objectForKey:@"installed"] ? [[dict objectForKey:@"installed"] boolValue] : NO
andFacebookId:[dict objectForKey:@"id"]
];
[self.arrayFriendsList addObject:objContact];
objContact = nil;
}
NSSortDescriptor *descriptor=[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *descriptors=[NSArray arrayWithObject: descriptor];
self.arrayFriendsList = (NSMutableArray *)[self.arrayFriendsList sortedArrayUsingDescriptors:descriptors];
}
}
else
{
NSLog(@"Error%@", error);
// [progressHUD hide:YES];
}
dispatch_async(dispatch_get_main_queue(), ^{
[progressHUD hide:YES];
[self.tblFriendsList reloadData];
});
}];
}
else
{
NSLog(@"Grant Error:%@", error);
[progressHUD hide:YES];
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:@"You need to set up Facebook account on the Settings App."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}];
}
else
{
[progressHUD hide:YES];
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:@"You need to set up Facebook account on the Settings App."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}