Skip to content

Instantly share code, notes, and snippets.

@stelabouras
Last active October 4, 2024 20:15
Show Gist options
  • Select an option

  • Save stelabouras/1634b0c3ef080a0aa733 to your computer and use it in GitHub Desktop.

Select an option

Save stelabouras/1634b0c3ef080a0aa733 to your computer and use it in GitHub Desktop.
Loads a Camera Roll Asset to Instagram (works for both photos & videos)
- (void)loadCameraRollAssetToInstagram:(NSURL*)assetsLibraryURL andMessage:(NSString*)message
{
NSString *escapedString = [assetsLibraryURL.absoluteString urlencodedString];
NSString *escapedCaption = [message urlencodedString];
NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@", escapedString, escapedCaption]];
[[UIApplication sharedApplication] openURL:instagramURL];
}
@mlagadhir

Copy link
Copy Markdown

this code do not show photo anymore into Instagram app, any idea?
NSString *caption2 = @"wertheclay";
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:self.image.CGImage metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library AssetPath=%@&InstagramCaption=%@", assetURL, caption2]];
NSLog(@"assetURL %@", assetURL);
[[UIApplication sharedApplication] openURL:instagramURL];

}];

@chetem

chetem commented Apr 12, 2016

Copy link
Copy Markdown

i'm having the same issue @mlagadhir, the url is not working.

let fileURLString = url.absoluteString.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
let encodedURLString = "instagram://library?AssetPath=\(fileURLString)"
guard let encodedURL = NSURL(string:encodedURLString) else { print("failed to create instagram url") }

This fails to create the url for instagram every time. have you had any luck?

@omarojo

omarojo commented Jul 27, 2016

Copy link
Copy Markdown

instagram://library?AssetPath=(assetsLibraryUrl) stopped working a while ago. Instagram developers probably moved to Photos framework and no longer use the AssetsLibrary.

Having this assumption I tried several other parameter names and found that instagram://library?LocalIdentifier=(localID) where localId is the localIdentifier of your PHAsset works for now.

This is still as undocumented as it was so it can break in any future version of the Instagram.

@yjb94

yjb94 commented Feb 27, 2017

Copy link
Copy Markdown

instagram://library?LocalIdentifier=(localID)

stopped working...

@ericleiyang

Copy link
Copy Markdown

instagram://library?LocalIdentifier=(localID) stopped working for me as well

@ricardopereira

Copy link
Copy Markdown

LocalIdentifier works for me.

@dorshorst

Copy link
Copy Markdown

Using an unescaped local identifier along with the URL param OpenInEditor=1 seems to get it working again, at least currently.

Example: instagram://library?OpenInEditor=1&LocalIdentifier=DBD74ED9-4D9D-4F35-B12A-5B647944DDFE/L0/001

@adamhaafiz

adamhaafiz commented Jul 27, 2017

Copy link
Copy Markdown

instagram://library?AssetPath=\(fileURLString) starting crashing for me all of a sudden, changing to instagram://library?OpenInEditor=1&LocalIdentifier=\(fileLocalIdString) works.

@dhomes

dhomes commented Jan 23, 2018

Copy link
Copy Markdown

is there a way from preventing it showing the POST TO FEED / STORY that started showing up recently? I'd like to go directly to my feed

@innoranveer

Copy link
Copy Markdown

I am facing the same issue the image which i want to share from app isn't landing on Instagram image editor, its forcing me to choose photo from library or camera

@roimulia

roimulia commented Feb 8, 2018

Copy link
Copy Markdown

Same issue as @innoravaneer

@Jaydip-iOS

Copy link
Copy Markdown

Thanks and i need same thing working for whatsapp Also so please can you share code for whatsApp ?

@AFathi

AFathi commented May 21, 2018

Copy link
Copy Markdown

@DavidAPears

Copy link
Copy Markdown
`instagram://library?OpenInEditor=1&LocalIdentifier=+${encodedURL}`; 

Worked for me :)

@rewaant

rewaant commented Nov 26, 2020

Copy link
Copy Markdown

Stopped working now. Any other way to do this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment