图片未从 ios 6 发布在 Instagram 上

Posted

技术标签:

【中文标题】图片未从 ios 6 发布在 Instagram 上【英文标题】:Image not post on instagram from ios 6 【发布时间】:2013-01-17 04:17:00 【问题描述】:

我正在使用 instagram-ios-sdk 将 Instagram 集成到我的应用程序中。我可以成功地将login 发送到 Instagram 并获得访问令牌,但之后当我尝试使用来自UIImagePickerControllerUIDocumentInteractionController 发布图片时,图像没有发布。发送图片的代码如下:

(void)_startUpload:(UIImage *) image 
    NSLog(@"Image Object = %@",NSStringFromCGSize(image.size));
    NSString  *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.igo"];
    [UIImageJPEGRepresentation(image, 1.0) writeToFile:jpgPath atomically:YES];
    NSLog(@"file url  %@",jpgPath);

    NSURL *igImageHookFile = [[NSURL alloc] init];
igImageHookFile = [NSURL fileURLWithPath:jpgPath];
NSLog(@"File Url = %@",igImageHookFile);

    documentInteractionController.UTI = @"com.instagram.photo";
    [UIDocumentInteractionController interactionControllerWithURL:igImageHookFile];
    [self setupControllerWithURL:igImageHookFile usingDelegate:self];

    [documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];


(UIDocumentInteractionController *) setupControllerWithURL: (NSURL*) fileURL  usingDelegate: (id <UIDocumentInteractionControllerDelegate>) interactionDelegate 
    NSLog(@"%@",fileURL);
    UIDocumentInteractionController *interactionController =
        [UIDocumentInteractionController interactionControllerWithURL: fileURL];
    interactionController.delegate = interactionDelegate;

    return interactionController;

我将图像转换为.ig 格式,分辨率为(612 *612)。但图片仍然没有发布在Instagram 上。我错过了什么吗?谁能帮我解决这个问题?

谢谢

【问题讨论】:

这里有同样的问题。 :(如果你知道了,请你分享一下你做了什么。 你们中有人想出来了吗? 【参考方案1】:

首先,在您的代码中,您没有将 setupControllerWithURL: usingDelegate: 的返回值分配给一个对象,因此该方法实际上并没有完成任何事情,只是创建了一个新的 UIDocumentInteractionController 实例并将其丢弃。

其次,来自文档:

"Note that the caller of this method needs to retain the returned object."

据我所知,您没有保留文档控制器(或在 ARC 的情况下将其分配给强引用属性)。

试试这个 - 在您的@interface 中:

@property (nonatomic, strong) UIDocumentInteractionController *documentController;

在您的@实现中:

self.documentController = [UIDocumentInteractionController interactionControllerWithURL:igImageHookFile];
self.documentController.delegate = self;
self.documentController.UTI = @"com.instagram.photo";
[self.documentController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

另外,NSURL *igImageHookFile = [[NSURL alloc] init]; 行是不必要的,因为在下一行 igImageHookFile = [NSURL fileURLWithPath:jpgPath]; 中,您正在创建一个新实例并丢弃第一个实例。只需使用NSURL *igImageHookFile = [NSURL fileURLWithPath:jpgPath];

【讨论】:

我做了这一切,但结果是一样的,图像没有发布在这个,它是否可能只在设备上工作而不是在模拟器中。我能做什么??? 我试过 [self.documentInteractionController presentOptionsMenuFromRect:self.view.frame inView:self.view animated:YES];它的工作感谢 daltonclay***..:) 我可以知道图片已成功分享到 Instagram 吗?我只想在图像共享成功时更新我的​​数据库。

以上是关于图片未从 ios 6 发布在 Instagram 上的主要内容,如果未能解决你的问题,请参考以下文章

Sanity.io API 从 URL 上传图片

在 iOS 中与 Instagram 上的图像共享文本

通过您自己的 iOS 应用程序将照片上传到 Instagram

iOS - 将图像发送到 Instagram - DocumentInteraction

Instagram 共享以供 iOS 不工作(UIDocumentInteractionController)

如何使用新的 Instagram Graph 或 Basic Display API 获取普通用户的个人资料图片(截至 2020 年 6 月 29 日)