i hope this will also help you
-(void)facebookPost:(NSString *)text{
ACAccountStore *facebookaccount1 = [[ACAccountStore alloc] init];
ACAccountType *facebookaccountType = [facebookaccount1 accountTypeWithAccountTypeIdentifier: ACAccountTypeIdentifierFacebook];
// Specify App ID and permissions
NSDictionary *options = @{ ACFacebookAppIdKey: @"xxxxxxxxxxxxxxx", ACFacebookPermissionsKey: @[@"publish_stream"], ACFacebookAudienceKey: ACFacebookAudienceFriends };
[facebookaccount1 requestAccessToAccountsWithType:facebookaccountType options:options completion:^(BOOL granted, NSError *error) {
if(granted) {
NSArray *accountsArray = [facebookaccount1 accountsWithAccountType:facebookaccountType];
if ([accountsArray count] > 0)
{
NSDictionary *parameters = @{@"message": text};
SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:[NSURL URLWithString:@"https://graph.facebook.com/me/photos"]
parameters:parameters];
NSString *link = [NSString stringWithFormat:@"%simages/%@",ServerPath,[images objectAtIndex:imageNO]]; // image link
NSURL *url = [NSURL URLWithString:link];
NSData *data = [NSData dataWithContentsOfURL:url];
// code for compress image you can delete this code if you dont want to compress image
CGFloat compression = 1.0f;
CGFloat maxCompression = 0.0f;
int maxFileSize = 150*224;
UIImage *img1 = [[UIImage alloc] initWithData:data];
NSData *imageData = UIImageJPEGRepresentation(img1, compression);
while ([imageData length] > maxFileSize && compression > maxCompression)
{
compression -= 0.1;
imageData = UIImageJPEGRepresentation(img1, compression);
}
// imageData is your image
[facebookRequest addMultipartData: imageData
withName:@"source"
type:@"multipart/form-data"
filename:@"TestImage"];
ACAccount *facebookAccount1 = [accountsArray objectAtIndex:0];
[facebookRequest setAccount:facebookAccount1];
[facebookRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
{
// Log the result
}];
}
}
}];
}