Instagram InstagramCaption not working

匿名 (未验证) 提交于 2019-12-03 03:06:01

问题:

I have below code for sharing article on Instagram.

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

This code was working fine earlier. However when I noticed, I see that caption is not showing in Instagram. After research I changed

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

to

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

But still it is not working.

Any idea what is going wrong?

Did Instagram changed any policy like Facebook?

回答1:

Instagram has now removed the filling in of the caption field using the interaction controller.

See this blog post from them

Instagram developer blog



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!