Изображение в библиотеке фотографий не видно в Instagram
У меня есть приложение, которое обменивается изображениями и видео с различными службами. Одним из них является Instagram. Поскольку Instagram не поддерживает отправку видео напрямую, я исследовал этот блог.
Я смог сделать что-то похожее для видео с новой платформой Фото:
AVExport to convert to a proper video format.
PHPHotoLibrary > create new album.
PHPHotoLibrary > ad converted asset to the PHLibrary
PHPHotoLibrary > Fetch the PHAsset to get a library URL.
Отправьте URL библиотеки в Instagram. Этот процесс отлично подходит для видео. Однако у меня проблема с изображениями! По какой-то причине изображение будет сохранено в библиотеке, но они НЕ видны в Instagram.
Любые идеи, почему изображение, которое находится в PhotoLibrary не отображается в Instagram? Есть ли правильный способ конвертировать изображение перед выполнением PHLibrary creationRequeest?
Вот мой основной фрагмент для процесса изображения..
- (void)saveImageAsset:(UIImage*)theImage toAblum:(NSString*)title andCompletion:(void (^)(NSURL* libraryURL))completion {
__block NSString *objIdentifier;
NSData *imgData = UIImagePNGRepresentation(theImage);
theImage = [UIImage imageWithData:imgData];
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetCollection *assetCollection = [self albumWithTitle:title];
PHAssetChangeRequest* createAssetRequest =
[PHAssetChangeRequest creationRequestForAssetFromImage:theImage];
PHObjectPlaceholder *assetPlaceholder = createAssetRequest.placeholderForCreatedAsset;
PHAssetCollectionChangeRequest *albumChangeRequest =
[PHAssetCollectionChangeRequest changeRequestForAssetCollection:assetCollection];
[albumChangeRequest addAssets:@[ assetPlaceholder ]];
objIdentifier = assetPlaceholder.localIdentifier;
} completionHandler:^(BOOL success, NSError *error) {
if (!success) {
NSLog(@"performChanges Error %@", error);
} else NSLog(@"Write Image Good");
//NSLog(@"objIdentifier = %@", objIdentifier);
PHFetchResult *newFetch = [PHAsset fetchAssetsWithLocalIdentifiers:@[objIdentifier] options:nil];
PHAsset *lastImageAsset = [newFetch lastObject];
// NSLog(@"Image Fetch = %@ --lastImageAsset %@", newFetch, lastImageAsset);
PHImageRequestOptions* options = [[PHImageRequestOptions alloc] init];
options.synchronous = YES;
options.deliveryMode = PHImageRequestOptionsDeliveryModeFastFormat;
options.networkAccessAllowed = NO;
options.version = PHImageRequestOptionsVersionOriginal;
[[PHImageManager defaultManager] requestImageForAsset:(PHAsset *)lastImageAsset
targetSize:CGSizeMake(640,640)
contentMode:PHImageContentModeDefault
options:options
resultHandler:^(UIImage *result, NSDictionary *info) {
//NSLog(@"info = %@", info);
NSURL *finalImageURL = info[@"PHImageFileURLKey"];
NSLog(@"finalImageURL = %@", finalImageURL);
if (!finalImageURL) completion(nil);
completion(finalImageURL);
}];
}];
}