diff --git a/android/src/main/java/cl/json/social/InstagramStoriesShare.java b/android/src/main/java/cl/json/social/InstagramStoriesShare.java index 6dc7a175..efd789f4 100644 --- a/android/src/main/java/cl/json/social/InstagramStoriesShare.java +++ b/android/src/main/java/cl/json/social/InstagramStoriesShare.java @@ -61,6 +61,8 @@ private void shareStory(ReadableMap options) { return; } + this.intent.putExtra("source_application", options.getString("appId")); + this.intent.putExtra("bottom_background_color", "#906df4"); this.intent.putExtra("top_background_color", "#837DF4"); diff --git a/example/App.js b/example/App.js index d3c9d2f9..dfcabed6 100644 --- a/example/App.js +++ b/example/App.js @@ -218,6 +218,8 @@ const App = () => { title: 'Share image to instastory', backgroundImage: images.image1, social: Share.Social.INSTAGRAM_STORIES, + appId: '219376304', //instagram appId + }; try { diff --git a/ios/InstagramStories.m b/ios/InstagramStories.m index e1ccadc0..b921bb8d 100644 --- a/ios/InstagramStories.m +++ b/ios/InstagramStories.m @@ -17,8 +17,8 @@ @implementation InstagramStories - (void)shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback { - - NSURL *urlScheme = [NSURL URLWithString:@"instagram-stories://share"]; + + NSURL *urlScheme = [NSURL URLWithString:[NSString stringWithFormat:@"instagram-stories://share?source_application=%@", options[@"appId"]]]; if (![[UIApplication sharedApplication] canOpenURL:urlScheme]) { NSError* error = [self fallbackInstagram]; failureCallback(error); diff --git a/src/index.tsx b/src/index.tsx index 6392a25b..f4e34f17 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -95,6 +95,13 @@ const RNShare = { options.urls = [options.url]; } + if (options.social === RNShare.Social.INSTAGRAM_STORIES && !options.appId) { + return reject({ + success: false, + message: 'Instagram Story share requires an appId based on Meta policy.', + }); + } + NativeModules.RNShare.shareSingle( options, (error) => { diff --git a/src/types.ts b/src/types.ts index 7498ee3a..a157f6f1 100644 --- a/src/types.ts +++ b/src/types.ts @@ -74,6 +74,7 @@ interface BaseSocialStoriesShareSingleOptions extends Omit