Я пытаюсь добиться следующего: IOS - Facebook Open Graph Апи - обеспечение того, чтобы фотографии пользовательский
Это требует запрос на открытый график, чтобы выглядеть примерно так: (https://developers.facebook.com/docs/opengraph/howtos/adding-photos-to-stories/)
POST /me/cookbook:eat?
recipe=http://www.example.com/recipes/pizza/&
image[0][url]=http://www.example.com/recipes/pizza/pizza.jpg&
image[0][user_generated]=true&
image[1][url]=http://www.example.com/recipes/pizza/pizza2.jpg&
image[1][user_generated]=true&
access_token=VALID_ACCESS_TOKEN
Однако, используя этот код: (с scruptious учебника здесь: https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/publish-open-graph-story/) Я не знаю, как установить флаг генерируется пользователем истины. Из-за этого фотография кажется маленькой.
- (void)postOpenGraphActionWithPhotoURL:(NSString*)photoURL
{
// First create the Open Graph meal object for the meal we ate.
id<SCOGMeal> mealObject = [self mealObjectForMeal:self.selectedMeal];
// Now create an Open Graph eat action with the meal, our location,
// and the people we were with.
id<SCOGEatMealAction> action =
(id<SCOGEatMealAction>)[FBGraphObject graphObject];
action.meal = mealObject;
if (self.selectedPlace) {
action.place = self.selectedPlace;
}
if (self.selectedFriends.count > 0) {
action.tags = self.selectedFriends;
}
if (photoURL) {
NSMutableDictionary *image = [[NSMutableDictionary alloc] init];
[image setObject:photoURL forKey:@"url"];
NSMutableArray *images = [[NSMutableArray alloc] init];
[images addObject:image];
action.image = images;
}
// Create the request and post the action to the
// "me/<YOUR_APP_NAMESPACE>:eat" path.
[FBRequestConnection startForPostWithGraphPath:@"me/<YOUR_APP_NAMESPACE>:eat"
graphObject:action
completionHandler:
^(FBRequestConnection *connection, id result, NSError *error) {
NSString *alertText;
if (!error) {
alertText = [NSString stringWithFormat:
@"Posted Open Graph action, id: %@",
[result objectForKey:@"id"]];
} else {
alertText = [NSString stringWithFormat:
@"error: domain = %@, code = %d",
error.domain, error.code];
}
[[[UIAlertView alloc] initWithTitle:@"Result"
message:alertText
delegate:nil
cancelButtonTitle:@"Thanks!"
otherButtonTitles:nil]
show];
}
];
}
здесь, mealobject соответствует протоколу FBGraphObject. Используя тот же самый протокол, на который я наследую, как установить флаг, созданный пользователем, как true? В документации ничего не упоминается «user_generated».
Или мне не следует использовать протокол и вручную форматировать строку в соответствии с требуемыми параметрами сообщения?
EDIT: Я попытался вручную сделать это, используя строку вместо объекта FBOpenGraph, и мне удалось реплицировать эту же функциональность.
Однако я не смог получить несколько фотографий или установить их для создания пользователями.
SCProtocols.h:
#import <Foundation/Foundation.h>
#import <FacebookSDK/FacebookSDK.h>
@protocol SCOGMeal<FBGraphObject>
@property (retain, nonatomic) NSString *id;
@property (retain, nonatomic) NSString *url;
@end
@protocol SCOGEatMealAction<FBOpenGraphAction>
@property (retain, nonatomic) id<SCOGMeal> meal;
@end
Это, кажется, работает! Это странно ... потому что я думал, что попробовал это. Во всяком случае, http://stackoverflow.com/questions/17623341/ios-facebook-open-graph-api-getting-captions-to-show-up-next-to-user-genera теперь у меня другая проблема, подписи на рядом с этими более крупными изображениями. – stackOverFlew