Публикация пользовательской истории Facebook с использованием вызовов API из приложения IOS

Мне нужно опубликовать историю Open Graph на стене Facebook из моего приложения. Я следил за текущим руководством для разработчиков Facebook.

Я создал объект, действие и историю на панели инструментов Facebook. Затем в моем приложении выполните следующий код:

создать объект:

 NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost]; 
object.provisionedForPost = YES;
object[@"title"] = @"test title";
object[@"type"] = @"myapp:my_object_type";
object[@"description"] = @"test discription";
object[@"url"] = @"http://example.com";
object[@"image"] = @[@{@"url": [result objectForKey:@"uri"], @"user_generated" : @"false" }];

и опубликуйте это:

[FBRequestConnection startForPostOpenGraphObject:object completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                if(!error) {
                    NSString *objectId = [result objectForKey:@"id"];
                    NSLog(@"object id %@",objectId);
                } else {
                    NSLog(@"Error posting the Open Graph object to the Object API: %@", error);
                }
            }];

        } else {
            NSLog(@"Error staging an image: %@", error);
        }
    }];

В результате получил идентификатор объекта.

Затем создайте действие и свяжите его с объектом:

 id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:objectId forKey:@"my_object_type"];

FBOpenGraphActionParams *params = [[FBOpenGraphActionParams alloc] init];
params.action = action;
params.actionType = @"myapp:my_app_action";

И опубликуйте это в Facebook:

 [FBRequestConnection startForPostWithGraphPath:@"/me/myapp:my_app_action" graphObject:action completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    if(!error) {
        NSLog(@"OG story posted, story id: %@", [result objectForKey:@"id"]);
        [[[UIAlertView alloc] initWithTitle:@"OG story posted"
                                    message:@"Check your Facebook profile or activity log to see the story."
                                   delegate:self
                          cancelButtonTitle:@"OK!"
                          otherButtonTitles:nil] show];
    } else {
        NSLog(@"Encountered an error posting to Open Graph: %@", error);
    }
}];

В результате я получил сообщение о том, что история OG была успешно опубликована, но при переходе на Facebook в ленте или временной шкале ничего нет, просто изображение, добавленное в фотоальбом пользователей.


person r.kolodiy    schedule 19.06.2014    source источник


Ответы (1)


Ну не знаю в чем была проблема, но теперь работает со следующим кодом:

FBRequestConnection *connection = [[FBRequestConnection alloc]init];

NSMutableDictionary <FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object[@"type"] = @"myapp:my_object_type";
object[@"title"] = @"title";
object[@"url"] = @"http://example.com";
object[@"image"] = @"http://image.png";
object[@"description"] = @"description";

FBRequest *objectRequest = [FBRequest requestForPostOpenGraphObject:object];

[connection addRequest:objectRequest completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    if (error) {
        NSLog(@"Error: %@",error.description);
    }
} batchEntryName:@"objectCreate"];


NSMutableDictionary <FBOpenGraphAction> *action = [FBGraphObject openGraphActionForPost];

action[@"buy"] = @"{result=objectCreate:$.id}";
action[@"fb:explicitly_shared"] = @"true";

FBRequest *actionRequest = [FBRequest requestForPostWithGraphPath:@"me/myapp:my_app_action" graphObject:action];

[connection addRequest:actionRequest completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    if (error) {
        NSLog(@"error: %@",error.description);
    } else {
        NSLog(@"posted with id %@", result[@"id"]);
    }
}];

[connection start];
person r.kolodiy    schedule 24.06.2014
comment
Я пытаюсь сделать то же самое с помощью FB SDK, но я понятия не имею, как настроить конфигурацию приложения Facebook. Можете ли вы помочь узнать, что мне делать и что я должен добавить в свое приложение Facebook? - person Omarj; 28.03.2015