Это старый вопрос, но то, что вы пытаетесь сделать, возможно с последней версией Facebook iOS SDK v3.9.(27 октября 2013 г.)
По сути, FBRequestConnection предоставляет свойство urlRequest (NSMutableURLRequest), которое можно использовать для отправки данных любым другим сторонним сетевым средам или даже тем, которые предоставила Apple.
https://developers.facebook.com/docs/reference/ios/current/class/FBRequestConnection#urlRequest
Вот пример того, как я получаю обратные вызовы прогресса с помощью AFNetworking 1.x.
Подготовка тела запроса
NSDictionary *parameters = @{ @"video.mov": videoData,
@"title": @"Upload Title",
@"description": @"Upload Description" };
Создание FBRequest
FBRequest *request = [FBRequest requestWithGraphPath:@"me/videos"
parameters:parameters
HTTPMethod:@"POST"];
Создать FBRequestConnection (отменить и извлечь URLRequest)
FBRequestConnection *requestConnection = [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
}];
[requestConnection cancel];
NSMutableURLRequest *urlRequest = requestConnection.urlRequest;
Использовать AFNetworking HTTPRequestOperation
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
// Do your success callback.
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// Do your failure callback.
}];
Установить обратный вызов процесса
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
Запустить операцию
[[APIClient sharedInstance] enqueueHTTPRequestOperation:operation];
// APIClient is a singleton class for AFHTTPClient subclass