这是一个工作代码:
_place.facebookId = 签到地点的地点 ID
listFriends = 要签入的好友 ID 列表
-(void)publishToFacebook:(NSString *)message
{
// Create the parameters dictionary that will keep the data that will be posted.
NSMutableArray *fArray = [NSMutableArray new];
for (RCPerson *person in listFriends)
{
[fArray addObject:person.ID];
}
NSMutableDictionary * params = [NSMutableDictionary new];
if(fArray.count > 0)
{
params = [NSMutableDictionary dictionaryWithObjectsAndKeys: message, @"message",[fArray componentsJoinedByString:@","], @"tags", _place.facebookId, @"place", nil];
}
else
{
params = [NSMutableDictionary dictionaryWithObjectsAndKeys: message, @"message", _place.facebookId, @"place", nil];
}
NSLog(@"params %@", params);
FBRequest *postRequest = [FBRequest requestWithGraphPath:@"me/feed" parameters:params HTTPMethod:@"POST"];
postRequest.session = FBSession.activeSession;
if(![postRequest.session.permissions containsObject:@"publish_stream"])
{
[postRequest.session requestNewPublishPermissions:@[@"publish_stream", @"publish_actions"] defaultAudience:FBSessionDefaultAudienceEveryone completionHandler:^(FBSession *session, NSError *error) {
[postRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"error %@", error.description);
if(error)
{
dispatch_async(dispatch_get_main_queue(), ^(void) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook error" message:[self parseError:error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
});
}
NSLog(@"%@", result);
//[self checkinMe];
}];
}];
}
else
{
[postRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"error %@", error.description);
if(error)
{
dispatch_async(dispatch_get_main_queue(), ^(void) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook error" message:[self parseError:error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
});
}
NSLog(@"%@", result);
//[self checkinMe];
}];
}
}