Как я могу поделиться достижениями игры через открытый график?
Я хочу поделиться историей игровых достижений в 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";