2015-08-10 32 views
8

Ho sotto il codice per condividere l'articolo su Instagram.Instagram InstagramCaption non funziona

-(void) shareInstagram { 
    NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"]; 
    if([[UIApplication sharedApplication] canOpenURL:instagramURL]) //check for App is install or not 
    { 
     UIImage *instaImage = mImg.image; 
     NSData *imageData = UIImagePNGRepresentation(instaImage); //convert image into .png format. 
     NSLog(@"imageData.leeee===%d", imageData.length); 
     if (imageData.length<=100) { 
      [self.view makeToast:localize(@"instaErr2") duration:2.0 position:@"bottom"]; 
     } else { 
      NSFileManager *fileManager = [NSFileManager defaultManager];//create instance of NSFileManager 
      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //create an array and store result of our search for the documents directory in it 
      NSString *documentsDirectory = [paths objectAtIndex:0]; //create NSString object, that holds our exact path to the documents directory 
      NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"insta.igo"]]; //add our image to the path 
      [fileManager createFileAtPath:fullPath contents:imageData attributes:nil]; //finally save the path (image) 
      NSLog(@"image saved"); 

      CGRect rect = CGRectMake(0 ,0 , 0, 0); 
      UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0); 
      [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
      UIGraphicsEndImageContext(); 
      NSString *fileNameToSave = [NSString stringWithFormat:@"Documents/insta.igo"]; 
      NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:fileNameToSave]; 
      NSLog(@"jpg path %@",jpgPath); 
      NSString *newJpgPath = [NSString stringWithFormat:@"file://%@",jpgPath]; 
      NSLog(@"with File path %@",newJpgPath); 
      NSURL *igImageHookFile = [[NSURL alloc]initFileURLWithPath:newJpgPath]; 
      NSLog(@"url Path %@",igImageHookFile); 

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

      NSString *globalString; 

      if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"PoPinFrom"] isEqualToString:@"user"]) { 
       globalString = [NSString stringWithFormat:@"%@ @ %@\n\nhttp://egkw.com/ArticleDetail.aspx?id=%@\n\niPhone : %@\n\nAndroid : %@", [[productDetailsArray objectAtIndex:0] valueForKey:@"Title"], localize(@"appName"), [[productDetailsArray objectAtIndex:0] valueForKey:@"Id"], localize(@"appStoreLink"), localize(@"playStoreLink")]; 
      } else { 
       globalString = [NSString stringWithFormat:@"%@ @ %@\n\nhttp://egkw.com/ArticleDetail.aspx?id=%@\n\niPhone : %@\n\nAndroid : %@", [[productDetailsArray objectAtIndex:0] valueForKey:@"Title"], localize(@"appName"), [[productDetailsArray objectAtIndex:0] valueForKey:@"Id"], localize(@"appStoreLink"), localize(@"playStoreLink")]; 
      } 

      globalString = [NSString stringWithFormat:@"%@\n\n#EGKW", globalString]; 
      NSLog(@"insta==globalString==%@", globalString); 
      self.documentController.annotation=[NSDictionary dictionaryWithObjectsAndKeys:globalString, @"InstagramCaption", nil]; 
      // self.documentController.annotation = [NSDictionary dictionaryWithObject:globalString forKey:@"InstagramCaption"]; 
      [self.documentController presentOpenInMenuFromRect:rect inView: self.view animated:YES]; 
     } 
    } 
    else 
    { 
     NSLog (@"Instagram not found"); 
     DTAlertView *myAl = [DTAlertView alertViewWithTitle:localize(@"err001") message:localize(@"instaErr") delegate:nil cancelButtonTitle:localize(@"dismiss") positiveButtonTitle:nil]; 
     [myAl setDismissAnimationWhenButtonClicked:DTAlertViewAnimationSlideTop]; 
     [myAl showWithAnimation:DTAlertViewAnimationSlideBottom]; 
    } 
} 

Questo codice funzionava bene prima. Tuttavia, quando ho notato, vedo che la didascalia non viene visualizzata su Instagram. Dopo la ricerca che ho cambiato

self.documentController.annotation=[NSDictionary dictionaryWithObjectsAndKeys:globalString, @"InstagramCaption", nil]; 

a

self.documentController.annotation = [NSDictionary dictionaryWithObject:globalString forKey:@"InstagramCaption"]; 

ma ancora non sta funzionando.

Qualche idea di cosa non funziona?

Instagram ha modificato qualsiasi politica come Facebook?

+0

Sono in esecuzione in esattamente lo stesso problema, nel mio caso, sto cercando un hashtag, ma senza alcun risultato. –

+0

@ CanPoyrazoğlu: Penso che Instagram abbia cambiato la sua politica come Facebook ma Instagram non ha postato .. Quindi non sono sicuro che questo sia un bug o un cambiamento nella politica ... –

+0

L'ho visto. Triste vederlo mentre implementa questa esatta funzionalità. –

risposta

16

Instagram ha rimosso la compilazione del campo didascalia utilizzando il controller di interazione.

vedere questo post del blog da loro

Instagram developer blog

+0

* il canale di condivisione spesso si sente spammoso *, *** è qualcosa di strano da Instagram *** –

+4

C'è qualche ricorso? Ho un'app che è fortemente dipendente dalla didascalia inviata. Quell'app ora è completamente inutile ... Quindi spero che ci sia un altro modo. – zillaofthegods