// Model
// FBPagesModel.h
@interface FBPagesModel : NSObject
@property (nonatomic, strong) NSString *access_token;
@property (nonatomic, strong) NSString *category;
@property (nonatomic, strong) NSString *pageId;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSArray *perms;
- (id)initWithDictionary:(NSDictionary *)dictionary;
// FBPagesModel.m
#import "FBPagesModel.h"
@implementation FBPagesModel
- (id)initWithDictionary:(NSDictionary *)dictionary {
if (self = [super init]) {
self.access_token = [dictionary objectForKey:@"access_token"];
self.category = [dictionary objectForKey:@"category"];
self.pageId = [dictionary objectForKey:@"id"];
self.name = [dictionary objectForKey:@"name"];
}
return self;
}
@end
// Uploader
FBPagesModel *pageModel = ....
Facebook *fb = [Facebook new];
[fb setAccessToken:pageModel.access_token];
ALAsset *asset = ... // localMedia asset;
UIImage *largeImage = [self imageForAsset:asset];
// Capture a photo via file upload as multipart/form-data then use the source parameter:
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
largeImage, @"source", nil];
NSLog(@"Params -> \n %@", params);
/* make the API call */
NSString *graphPath = [NSString stringWithFormat:@"/%@/photos", pageModel.pageId];
[FBRequestConnection startWithGraphPath:graphPath
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
/* handle the result */
if (!error) {
NSLog(@"Uploaded to Page \n %@", result);
} else {
NSLog(@"Error posing on FB page \n %@", error);
}
}];
- (UIImage *)imageForAsset:(ALAsset*)asset {
ALAssetRepresentation * representation = [asset defaultRepresentation];
CGImageRef image = [representation fullResolutionImage];
UIImageOrientation orientation = (UIImageOrientation)[representation orientation];
CGFloat scale = [representation scale];
return [UIImage imageWithCGImage:image scale:scale orientation:orientation];
}