Имам местна снимка в моето приложение за iPhone и искам да я кача в конкретен албум във Facebook, посветен на моето приложение.
Проблем: Името на приложението ми завършва с думата „Снимки“, така че албумът във Facebook по подразбиране е APP_NAME Photos Photos
– очевидно проблем.
Цел: Искам да създам нов албум, да съхраня идентификатора му в NSUserDefaults
и (след известна проверка по време на изпълнение) да го използвам за всички бъдещи снимки, които се качват от приложението.
Къде съм: Мога да направя новия албум чрез Open Graph, като използвам желаното от мен име и описание, и мога да извлека неговия идентификатор. Също така мога да качвам снимки достатъчно лесно. Това, което обаче НЕ МОГА да разбера, е как да посоча къде завършва тази качена снимка!
Код: Ето моят код за качване на снимки с някои коментирани резултати. Предполагам, че тук е проблемът ми, тъй като създаването на албум и т.н. работи перфектно.
- (void)postPhotosToFacebook:(NSArray *)photos withAlbumID:(NSString *)albumID {
// Just testing with one image for now; I'll get in to multiple later..
UIImage *image = [photos lastObject];
FBRequest *imageUploadRequest = [FBRequest requestForUploadPhoto:image];
// CALL OUT: I'm guessing my problem is here - but I just don't know!
[[imageUploadRequest parameters] setValue:albumID
forKey:@"album"];
DebugLog(@"imageUploadRequest parameters: %@",[imageUploadRequest parameters]);
// Results of DebugLog:
// imageUploadRequest parameters: {
// album = 10151057144449632;
// picture = "<UIImage: 0xc6b6920>";
// }
// The album data returns correctly using FB's Graph API explorer tool,
// so I know it's a legit album.
// https://developers.facebook.com/tools/explorer
FBRequestConnection *connection = [[FBRequestConnection alloc] init];
[connection addRequest:imageUploadRequest
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
DebugLog(@"Photo uploaded successfuly! %@",result);
// Results of DebugLog:
//
// Photo uploaded successfuly! {
// id = 10151057147399632;
// "post_id" = "511304631_10151057094374632";
// }
// Again, the photo at that ID shows up correctly, etc -
// BUT it's in the wrong album! It shows up in the default app album.
} else {
DebugLog(@"Photo uploaded failed :( %@",error.userInfo);
}
}];
[connection start];
}
Предполагания: Предполагам, че проблемът ми е някъде в начина, по който присвоявам параметъра за ID на албума си към заявката за изображение.. но нямам представа.
Можете да видите на този URL адрес, че това трябва да е възможно..