Puedes integrar el uso compartido en tus aplicaciones para iOS y Android a fin de que los usuarios puedan compartir tu contenido como una historia de Instagram. Para crear una nueva aplicación, consulta Introducción al SDK de Facebook para Android e Introducción al SDK de Facebook para iOS.
A partir de enero de 2023, debes proporcionar un identificador de aplicación de Facebook para compartir contenido en Instagram Stories. Para obtener más información, consulta Presentación de una novedad importante para la función Compartir en historias de Instagram. Si no proporcionas un identificador de aplicación, los usuarios verán el mensaje de error “La aplicación desde la que has compartido contenido no admite que se comparta en Stories” cuando intenten compartir su contenido en Instagram. Para encontrar el identificador de tu aplicación, consulta Obtener el identificador de la aplicación (Android) y Obtener el identificador de la aplicación (iOS).
Si usas los intentos implícitos de Android y los esquemas de URL personalizados de iOS, tu aplicación puede enviar fotos, vídeos y stickers a la aplicación de Instagram. La aplicación de Instagram recibe este contenido y lo carga en el editor de historias para que el usuario pueda publicarlo en Instagram Stories.
El editor de historias de la aplicación de Instagram está formado por una capa de fondo y una capa de sticker. Capa de fondoLa capa de fondo rellena la pantalla y se puede personalizar con una foto, un vídeo, un color sólido o un gradiente de color. Capa de stickerLa capa de sticker puede contener una imagen y el usuario puede personalizarla más en el editor de historias. |
Las implementaciones de Android utilizan los intentos implícitos para iniciar la aplicación Instagram y pasarle contenido. En general, el proceso de compartir debe ser el siguiente:
Al compartir contenido en historias, envías los siguientes datos.
Contenido | Tipo | Descripción |
---|---|---|
Identificador de la aplicación de Facebook | Cadena | |
Activo de fondo | URI a un activo de imagen (JPG o PNG) o activo de vídeo (H.264, H.265 o WebM). Dimensiones mínimas: 720 x 1280. Relación de aspecto recomendada: 9:16 o 9:18. Los vídeos pueden ser de 1080p y tener hasta 20 segundos de duración. El URI tiene que ser un URI de contenido a un archivo local del dispositivo. Debes enviar un activo de fondo, un activo de sticker o ambos. | |
Activo de sticker | URI a un activo de imagen (JPG o PNG). Dimensiones recomendadas: 640 × 480. Esta imagen se muestra como un sticker sobre el fondo. El URI tiene que ser un URI de contenido a un archivo local del dispositivo. Debes enviar un activo de fondo, un activo de sticker o ambos. | |
Color principal de la capa de fondo | Cadena | Valor de color de cadena hexadecimal usado junto con el valor de color inferior de la capa de fondo. Si ambos valores son iguales, la capa de fondo es un color sólido. Si son diferentes, se usan para generar un gradiente. Si especificas un activo de fondo, se usa dicho activo y se ignora este valor. |
Color inferior de la capa de fondo | Cadena | Valor de color de cadena hexadecimal usado junto con el valor de color superior de la capa de fondo. Si ambos valores son iguales, la capa de fondo es un color sólido. Si son diferentes, se usan para generar un gradiente. Si especificas un activo de fondo, se usa dicho activo y se ignora este valor. |
En el siguiente ejemplo de código, se envía una imagen a Instagram para que el usuario pueda publicarla en Instagram Stories.
// 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); }
En este ejemplo, se envía un activo de imagen de capa de sticker y un conjunto de colores de capa de fondo a Instagram. Si no especificas los colores de la capa de fondo, el color de la capa de fondo es #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); }
En este ejemplo, se envía un activo de imagen de capa de fondo y un activo de imagen de capa de sticker a 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); }
Las implementaciones de iOS utilizan un esquema de URL personalizado para iniciar la aplicación de Instagram y pasar contenido. En general, el proceso para compartir contenido debe ser el siguiente:
Al compartir contenido en historias, envías los siguientes datos.
Contenido | Tipo | Descripción |
---|---|---|
Identificador de la aplicación de Facebook | ||
Activo de imagen de fondo | Datos para un activo de imagen en un formato compatible (JPG, PNG). Dimensiones mínimas: 720 × 1280. Relación de aspecto recomendada: 9:16 o 9:18. Debes pasar a la aplicación de Instagram un activo de fondo (imagen o vídeo), un activo de sticker o ambos. | |
Activo de vídeo de fondo | Datos para un activo de vídeo en un formato compatible (H.264, H.265, WebM). Los vídeos pueden ser de 1080 p y durar hasta 20 segundos. Se recomienda que tengan menos de 50 MB. Debes pasar a la aplicación de Instagram un activo de fondo (imagen o vídeo), un activo de sticker o ambos. | |
Activo de sticker | Datos para un activo de imagen en un formato compatible (JPG, PNG). Dimensiones recomendadas: 640 × 480. Esta imagen se muestra como un sticker sobre el fondo. Debes pasar a la aplicación de Instagram un activo de fondo (imagen o vídeo), un activo de sticker o ambos. | |
Color principal de la capa de fondo | Valor de color de cadena hexadecimal usado junto con el valor de color inferior de la capa de fondo. Si ambos valores son iguales, la capa de fondo es un color sólido. Si son diferentes, se usan para generar un gradiente. | |
Color inferior de la capa de fondo | Valor de color de cadena hexadecimal usado junto con el valor de color inferior de la capa de fondo. Si ambos valores son iguales, la capa de fondo es un color sólido. Si son diferentes, se usan para generar un gradiente. |
Tienes que registrar el esquema de URL personalizado de Instagram antes de que la aplicación lo utilice. Añade instagram-stories
a la clave LSApplicationQueriesSchemes
en el archivo Info.plist
de tu aplicación.
En el siguiente ejemplo de código, se envía un activo de imagen de capa de fondo a Instagram para que el usuario pueda editarlo y publicarlo en Instagram Stories.
- (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 } }
En este ejemplo de código, se muestra cómo pasar a la aplicación de Instagram un activo de imagen de capa de sticker y un conjunto de colores de capa de fondo. Si no especificas los colores de la capa de fondo, el color de la capa de fondo es #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 } }
En este ejemplo de código, se muestra cómo pasar a la aplicación de Instagram un activo de imagen de capa de fondo y un activo de imagen de capa de sticker.
- (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 } }
También puedes permitir que los usuarios de tu aplicación compartan tu contenido como una historia de Facebook. Para obtener información sobre cómo hacerlo, consulta nuestra documentación sobre la función Compartir en historias de Facebook.