2013-01-17 6 views
6

Ich integriere Instagram in meine Anwendung mit der instagram-ios-sdk. Ich kann erfolgreich login auf Instagram und erhalten Sie ein Zugriffs-Token, aber danach, wenn ich versuche, ein Bild mit UIDocumentInteractionController von UIImagePickerController, das Bild wird nicht buchen. Der Code, ein Bild zu senden ist unten angegeben:Bild nicht Beitrag auf Instagram von IOS 6

(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; 
} 

ich konvertierte das Bild zu .ig-Format mit einer Auflösung von (612 * 612). Aber das Bild wird nicht auf Instagram gepostet. Fehle ich etwas? Kann mir jemand dabei helfen?

Dank

+0

gleichen Problem hier. :(Wenn Sie es herausgefunden haben, können Sie mir bitte mitteilen, was Sie getan haben. –

+0

Hat jemand von euch es herausgefunden? –

Antwort

0

First off, in Ihrem Code, ich zuweisen Sie nicht den Rückgabewert von setupControllerWithURL: usingDelegate: auf ein Objekt, so dass Verfahren etwas nicht tatsächlich erreichen, nur eine neue Instanz von UIDocumentInteractionController zu schaffen und es zu verwerfen .

Zweitens aus der Dokumentation:

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

Sie sind nicht das Dokument Controller Halt (oder es zu einer stark referenzierten Eigenschaft im Fall von ARC Zuweisung) von dem, was ich sagen kann.

Versuchen Sie, diese - In Ihrem @interface:

@property (nonatomic, strong) UIDocumentInteractionController *documentController; 

In Ihrer @implementation:

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

Auch die Linie NSURL *igImageHookFile = [[NSURL alloc] init]; nicht erforderlich ist, da in der nächsten Zeile igImageHookFile = [NSURL fileURLWithPath:jpgPath]; Sie sind die Schaffung neue Instanz und verwerfen die erste. Verwenden Sie einfach NSURL *igImageHookFile = [NSURL fileURLWithPath:jpgPath];

+0

Ich habe das alles gemacht, aber das Ergebnis ist das selbe Das Bild wird nicht in diesem Beitrag gepostet, Ist es nur möglich Arbeit in Gerät nicht im Simulator.Was kann ich tun? – chakshu

+0

Ich habe versucht [Self.documentInteractionController presentOptionsMenuFromRect: self.view.frame inView: self.view animiert: YES]; und es funktioniert dank daltonclaybrook .. :) – chakshu

+0

Can Ich weiß, dass Bild erfolgreich in Instagram geteilt wird? Ich möchte meine Datenbank nur aktualisieren, wenn das Bild erfolgreich freigegeben wurde. – Manthan