Как я могу поделиться достижениями игры через открытый график?

Я хочу поделиться историей игровых достижений в Facebook через Open Graph. Вот код для создания объекта открытого графика.

NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
        object.provisionedForPost = YES;
        object[@"title"] = @"Playing";
        object[@"type"] = @"game.achievement";
        object[@"description"] = @"I just hit 1000 km";
        object[@"url"] = @"https://www.facebook.com/";
        object[@"image"] = @[@{@"url": [result objectForKey:@"uri"], @"user_generated" : @"false" }];
        object[@"game:points"] = @"100";
[FBRequestConnection
                startForPostOpenGraphObject:object
                completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {}];

И я получаю это сообщение об ошибке

Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)"

и это тело ответа

body =     {
    error =         {
        code = 100;
        message = "(#100) Object Missing a Required Value: Object at URL 'https://www.facebook.com/' of type 'game.achievement' is invalid because a required property 'game:points' of type 'integer' was not provided.";
        type = OAuthException;
    };
};
code = 400;

Я знаю, что ошибка не требует пояснений, но как я могу передать целочисленное значение в словарь. Также я попытался передать значение NSNumber, но не повезло. Вот документальная ссылка на объект игрового достижения. Разделение игрового достижения с помощью открытого графического объекта.

1 ответ

Вот ответ, который работал для меня.

Просто оберните его внутри значений данных:

object[@"data"][@"game:points"] = @"100";
Другие вопросы по тегам