2013-01-17 15 views
6

Sto integrando Instagram nella mia applicazione utilizzando lo instagram-ios-sdk. Posso con successo login su Instagram e ottenere un token di accesso, ma dopo di che quando provo a pubblicare un'immagine utilizzando UIDocumentInteractionController da UIImagePickerController, l'immagine non sta pubblicando. Il codice per inviare una foto è il seguente:Immagine non pubblicata su instagram da 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; 
} 

ho convertito l'immagine in formato .ig, con una risoluzione di (612 * 612). Ma ancora l'immagine non sta pubblicando su Instagram. Mi sto perdendo qualcosa? Qualcuno mi può aiutare con questo?

Grazie

+0

stesso problema qui. :(se hai capito per favore puoi condividere quello che hai fatto –

+0

Qualcuno di voi ha capito? –

risposta

0

Prima di tutto, nel codice, non si sta assegnando il valore di ritorno di setupControllerWithURL: usingDelegate: a un oggetto, in modo che il metodo non è effettivamente compiendo nulla, solo la creazione di una nuova istanza di UIDocumentInteractionController e scartando esso .

In secondo luogo, dalla documentazione:

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

Non stai mantenendo il controller documento (o di assegnarlo a una proprietà fortemente riferimento nel caso di ARC) da quello che posso dire.

Prova questo - Nel vostro @interface:

@property (nonatomic, strong) UIDocumentInteractionController *documentController; 

Nel vostro @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]; 

Inoltre, la linea NSURL *igImageHookFile = [[NSURL alloc] init]; è inutile perché nella riga successiva igImageHookFile = [NSURL fileURLWithPath:jpgPath]; si sta creando un nuova istanza e scartando la prima. Basta usare NSURL *igImageHookFile = [NSURL fileURLWithPath:jpgPath];

+0

ho fatto tutto ma il risultato è lo stesso l'immagine non sta pubblicando in questo, è possibile solo lavoro in dispositivo non in simulatore. Cosa posso fare ??? – chakshu

+0

ho provato [self.documentInteractionController presentOptionsMenuFromRect: self.view.frame inView: self.view animato: YES]; e ha funzionato grazie daltonclaybrook .. :) – chakshu

+0

Can so che l'immagine è condivisa con successo su instagram? Voglio aggiornare il mio DB solo quando l'immagine è condivisa con successo. – Manthan

Problemi correlati