Skip to content

Commit

Permalink
feat(instagram): require appId for instagram stories to meet new Meta…
Browse files Browse the repository at this point in the history
… requirement (#1305)

* feat(android): support added for instagram source application

* feat(ios): support added for instagram source application

* feat(android): valid error in the javascript

BREAKING CHANGE: require appId according to Meta updates
  • Loading branch information
rickafds authored and MateusAndrade committed Nov 3, 2022
1 parent b4eec95 commit 20b270b
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 2 deletions.
Expand Up @@ -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");

Expand Down
2 changes: 2 additions & 0 deletions example/App.js
Expand Up @@ -218,6 +218,8 @@ const App = () => {
title: 'Share image to instastory',
backgroundImage: images.image1,
social: Share.Social.INSTAGRAM_STORIES,
appId: '219376304', //instagram appId

};

try {
Expand Down
4 changes: 2 additions & 2 deletions ios/InstagramStories.m
Expand Up @@ -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);
Expand Down
7 changes: 7 additions & 0 deletions src/index.tsx
Expand Up @@ -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) => {
Expand Down
1 change: 1 addition & 0 deletions src/types.ts
Expand Up @@ -74,6 +74,7 @@ interface BaseSocialStoriesShareSingleOptions extends Omit<BaseShareSingleOption

export interface InstagramStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {
social: Social.InstagramStories;
appId: string;
}

export interface FacebookStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {
Expand Down

0 comments on commit 20b270b

Please sign in to comment.