Du kannst die Möglichkeit zum Teilen in deine Android- und iOS-Apps integrieren, sodass Nutzer*innen deine Inhalte als Instagram Story teilen können. Informationen zum Erstellen einer neuen App findest du unter Erste Schritte mit dem Facebook-SDK für Android und Erste Schritte mit dem Facebook-SDK für iOS.
Ab Januar 2023 musst du eine Facebook-App-ID angeben, um Inhalte in Instagram Stories teilen zu können. Weiter Informationen findest du unter Einführung einer wichtigen Änderung zum Teilen in Stories auf Instagram. Wenn du keine App-ID angibst, wird deinen Nutzer*innen die Fehlermeldung „Die App, von der du etwas geteilt hast, unterstützt aktuell das Teilen in Stories nicht“ angezeigt, wenn sie versuchen, ihren Inhalt auf Instagram zu teilen. Informationen dazu, wie du deine App-ID findest, sind unter Hol dir deine App-ID (Android) und Hol dir deine App-ID (iOS) zu finden.
Deine App kann mit impliziten Intents unter Android und individuellen URL-Schemata unter iOS Fotos, Videos und Sticker an die Instagram-App senden. Die Instagram-App empfängt diese Inhalte und lädt sie in das Story-Eingabefeld, sodass der*die Nutzer*in sie in seinen*ihren Instagram-Stories veröffentlichen kann.
Das Story-Eingabefeld der Instagram-App besteht aus einer Hintergrundebene und einer Sticker-Ebene. HintergrundebeneDie Hintergrundebene füllt den Bildschirm aus. Sie kann mit einem Foto, Video, einer Farbe oder einem Farbverlauf individuell gestaltet werden. Sticker-EbeneDie Sticker-Ebene kann ein Bild enthalten. Außerdem kann die Ebene durch den Nutzer im Story-Eingabefeld weiter angepasst werden. |
Android-Implementierungen verwenden implizite Intents zum Starten der Instagram-App und Weitergeben von Inhalten. Grundsätzlich sollte dein Teilen-Vorgang Folgendes bewirken:
Beim Teilen in Stories sendest du folgende Daten:
Inhalt | Typ | Beschreibung |
---|---|---|
Facebook-App-ID | String | Deine Facebook-App-ID. |
Hintergrundelement | URI zu einem Bildelement (JPG, PNG) oder Videoelement (H.264, H.265, WebM). Mindestgröße 720 x 1280. Empfohlene Bildseitenverhältnisse: 9 : 16 oder 9 : 18. Videos können eine Auflösung von 1080 p haben und maximal 20 Sekunden dauern. Die URI muss eine Content-URI zu einer lokalen Datei auf dem Gerät sein. Du musst ein Hintergrundelement, ein Sticker-Element oder beides senden. | |
Sticker-Element | URI zu einem Bildelement (JPG, PNG). Empfohlene Größe: 640 x 480. Dieses Bild erscheint als Sticker über dem Hintergrund. Die URI muss eine Content-URI zu einer lokalen Datei auf dem Gerät sein. Du musst ein Hintergrundelement, ein Sticker-Element oder beides senden. | |
Obere Farbe der Hintergrundebene | String | Ein hexadezimaler String-Farbwert, der in Verbindung mit dem unteren Farbwert der Hintergrundebene verwendet wird. Sind beide Werte identisch, ist die Hintergrundebene einheitlich gefärbt. Unterscheiden sie sich, wird damit ein Farbverlauf erstellt. Wenn du ein Hintergrundelement angibst, wird das Element verwendet und dieser Wert ignoriert. |
Untere Farbe der Hintergrundebene | String | Ein hexadezimaler String-Farbwert, der in Verbindung mit dem oberen Farbwert der Hintergrundebene verwendet wird. Sind beide Werte identisch, ist die Hintergrundebene einheitlich gefärbt. Unterscheiden sie sich, wird damit ein Farbverlauf erstellt. Wenn du ein Hintergrundelement angibst, wird das Element verwendet und dieser Wert ignoriert. |
Der folgende Beispielcode sendet ein Bild an Instagram, sodass der*die Nutzer*in es in seinen*ihren Instagram Stories veröffentlichen kann.
// Instantiate an intent Intent intent = new Intent("com.instagram.share.ADD_TO_STORY"); // Attach your App ID to the intent String sourceApplication = "1234567"; // This is your application's FB ID intent.putExtra("source_application", sourceApplication); // Attach your image to the intent from a URI Uri backgroundAssetUri = Uri.parse("your-image-asset-uri-goes-here"); intent.setDataAndType(backgroundAssetUri, MEDIA_TYPE_JPEG); // Grant URI permissions for the image intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // Instantiate an activity Activity activity = getActivity(); // Verify that the activity resolves the intent and start it if (activity.getPackageManager().resolveActivity(intent, 0) != null) { activity.startActivityForResult(intent, 0); }
Dieser Beispielcode sendet ein Stickerebenen-Bildelement und diverse Farben der Hintergrundebene an Instagram. Wenn du die Farben für die Hintergrundebene nicht angibst, hat die Hintergrundebene die Farbe #222222
.
// Instantiate an intent Intent intent = new Intent("com.instagram.share.ADD_TO_STORY"); // Attach your App ID to the intent String sourceApplication = "1234567"; // This is your application's FB ID intent.putExtra("source_application", sourceApplication); // Attach your sticker to the intent from a URI, and set background colors Uri stickerAssetUri = Uri.parse("your-image-asset-uri-goes-here"); intent.setType(MEDIA_TYPE_JPEG); intent.putExtra("interactive_asset_uri", stickerAssetUri); intent.putExtra("top_background_color", "#33FF33"); intent.putExtra("bottom_background_color", "#FF00FF"); // Instantiate an activity Activity activity = getActivity(); // Grant URI permissions for the sticker activity.grantUriPermission( "com.instagram.android", stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); // Verify that the activity resolves the intent and start it if (activity.getPackageManager().resolveActivity(intent, 0) != null) { activity.startActivityForResult(intent, 0); }
Dieser Beispielcode sendet ein Hintergrundebenen-Bildelement und ein Stickerebenen-Bildelement an Instagram.
// Instantiate an intent Intent intent = new Intent("com.instagram.share.ADD_TO_STORY"); // Attach your App ID to the intent String sourceApplication = "1234567"; // This is your application's FB ID intent.putExtra("source_application", sourceApplication); // Attach your image to the intent from a URI Uri backgroundAssetUri = Uri.parse("your-background-image-asset-uri-goes-here"); intent.setDataAndType(backgroundAssetUri, MEDIA_TYPE_JPEG); // Attach your sticker to the intent from a URI Uri stickerAssetUri = Uri.parse("your-sticker-image-asset-uri-goes-here"); intent.putExtra("interactive_asset_uri", stickerAssetUri); // Grant URI permissions for the image intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // Instantiate an activity Activity activity = getActivity(); // Grant URI permissions for the sticker activity.grantUriPermission( "com.instagram.android", stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); // Verify that the activity resolves the intent and start it if (activity.getPackageManager().resolveActivity(intent, 0) != null) { activity.startActivityForResult(intent, 0); }
iOS-Implementierungen verwenden ein individuelles URL-Schema zum Starten der Instagram-App und Weitergeben von Inhalten. Grundsätzlich sollte dein Teilen-Vorgang Folgendes bewirken:
Beim Teilen in Stories sendest du folgende Daten:
Inhalt | Typ | Beschreibung |
---|---|---|
Facebook-App-ID | Deine Facebook-App-ID. | |
Hintergrund-Bildelement | Daten für ein Bildelement in einem unterstützten Format (JPG, PNG). Mindestgröße 720 x 1280. Empfohlene Bildseitenverhältnisse: 9:16 oder 9:18. Du musst der Instagram-App ein Hintergrundelement (Bild oder Video), ein Sticker-Element oder beides übergeben. | |
Hintergrund-Videoelement | Daten für ein Videoelement in einem unterstützten Format (H.264, H.265, WebM). Videos können eine Auflösung von 1080 p haben und maximal 20 Sekunden dauern. Empfohlen werden weniger als 50 MB. Du musst der Instagram-App ein Hintergrundelement (Bild oder Video), ein Sticker-Element oder beides übergeben. | |
Sticker-Element | Daten für ein Bildelement in einem unterstützten Format (JPG, PNG). Empfohlene Größe: 640 x 480. Dieses Bild erscheint als Sticker über dem Hintergrund. Du musst der Instagram-App ein Hintergrundelement (Bild oder Video), ein Sticker-Element oder beides übergeben. | |
Obere Farbe der Hintergrundebene | Ein hexadezimaler String-Farbwert, der in Verbindung mit dem unteren Farbwert der Hintergrundebene verwendet wird. Sind beide Werte identisch, ist die Hintergrundebene einheitlich gefärbt. Unterscheiden sie sich, wird damit ein Farbverlauf erstellt. | |
Untere Farbe der Hintergrundebene | Ein hexadezimaler String-Farbwert, der in Verbindung mit dem unteren Farbwert der Hintergrundebene verwendet wird. Sind beide Werte identisch, ist die Hintergrundebene einheitlich gefärbt. Unterscheiden sie sich, wird damit ein Farbverlauf erstellt. |
Du musst das individuelle URL-Schema von Instagram registrieren, damit deine App es nutzen kann. Füge instagram-stories
dem Schlüssel LSApplicationQueriesSchemes
in der Info.plist
deiner App hinzu.
Der folgende Beispielcode sendet ein Hintergrundebenen-Bildelement an Instagram, sodass der*die Nutzer*in es bearbeiten und in seinen*ihren Instagram Stories veröffentlichen kann.
- (void)shareBackgroundImage { // Identify your App ID NSString *const appIDString = @"1234567890"; // Call method to share image [self backgroundImage:UIImagePNGRepresentation([UIImage imageNamed:@"backgroundImage"]) appID:appIDString]; } // Method to share image - (void)backgroundImage:(NSData *)backgroundImage appID:(NSString *)appID { NSURL *urlScheme = [NSURL URLWithString:[NSString stringWithFormat:@"instagram-stories://share?source_application=%@", appID]]; if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) { // Attach the pasteboard items NSArray *pasteboardItems = @[@{@"com.instagram.sharedSticker.backgroundImage" : backgroundImage}]; // Set pasteboard options NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]}; // This call is iOS 10+, can use 'setItems' depending on what versions you support [[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions]; [[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil]; } else { // Handle error cases } }
Dieser Beispielcode zeigt, wie das Bildelement einer Sticker-Ebene und diverse Farben der Hintergrundebene an die Instagram-App übergeben werden. Wenn du die Farben für die Hintergrundebene nicht angibst, hat die Hintergrundebene die Farbe #222222
.
- (void)shareStickerImage { // Identify your App ID NSString *const appIDString = @"1234567890"; // Call method to share sticker [self stickerImage:UIImagePNGRepresentation([UIImage imageNamed:@"stickerImage"]) backgroundTopColor:@"#444444" backgroundBottomColor:@"#333333" appID:appIDString]; } // Method to share sticker - (void)stickerImage:(NSData *)stickerImage backgroundTopColor:(NSString *)backgroundTopColor backgroundBottomColor:(NSString *)backgroundBottomColor appID:(NSString *)appID { NSURL *urlScheme = [NSURL URLWithString:[NSString stringWithFormat:@"instagram-stories://share?source_application=%@", appID]]; if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) { // Attach the pasteboard items NSArray *pasteboardItems = @[@{@"com.instagram.sharedSticker.stickerImage" : stickerImage, @"com.instagram.sharedSticker.backgroundTopColor" : backgroundTopColor, @"com.instagram.sharedSticker.backgroundBottomColor" : backgroundBottomColor}]; // Set pasteboard options NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]}; // This call is iOS 10+, can use 'setItems' depending on what versions you support [[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions]; [[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil]; } else { // Handle error cases } }
Dieser Beispielcode zeigt, wie das Bildelement einer Hintergrundebene und das Bildelement einer Sticker-Ebene an die Instagram-App übergeben werden.
- (void)shareBackgroundAndStickerImage { // Identify your App ID NSString *const appIDString = @"1234567890"; // Call method to share image and sticker [self backgroundImage:UIImagePNGRepresentation([UIImage imageNamed:@"backgroundImage"]) stickerImage:UIImagePNGRepresentation([UIImage imageNamed:@"stickerImage"]) appID:appIDString]; } // Method to share image and sticker - (void)backgroundImage:(NSData *)backgroundImage stickerImage:(NSData *)stickerImage appID:(NSString *)appID { NSURL *urlScheme = [NSURL URLWithString:[NSString stringWithFormat:@"instagram-stories://share?source_application=%@", appID]]; if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) { // Attach the pasteboard items NSArray *pasteboardItems = @[@{@"com.instagram.sharedSticker.backgroundImage" : backgroundImage, @"com.instagram.sharedSticker.stickerImage" : stickerImage}]; // Set pasteboard options NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]}; // This call is iOS 10+, can use 'setItems' depending on what versions you support [[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions]; [[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil]; } else { // Handle error cases } }
Du kannst den Nutzer*innen deiner App auch erlauben, deine Inhalte als Facebook-Story zu teilen. Weitere Informationen dazu findest du in unserer Facebook-Dokumentation zum Thema Teilen in Stories.