Puoi integrare la condivisione nelle app Android e iOS in modo che gli utenti possano condividere i tuoi contenuti come una storia di Instagram. Per creare una nuova app, consulta Primi passi con l'SDK di Facebook per Android e Primi passi con l'SDK di Facebook per iOS.
A partire da gennaio 2023, devi fornire un ID dell'app di Facebook per condividere contenuti nelle Instagram Stories. Per maggiori informazioni, consulta Presentazione di un importante aggiornamento alla condivisione nelle storie su Instagram. Se non fornisci un ID dell'app, i tuoi utenti che tentano di condividere i loro contenuti su Instagram visualizzeranno il messaggio di errore "L'app da cui hai effettuato la condivisione al momento non supporta la condivisione nelle storie". Per trovare il tuo ID dell'app, consulta Acquisizione dell'ID dell'app (Android) e Acquisizione dell'ID dell'app (iOS).
Utilizzando intent impliciti di Android e schemi URL personalizzati di iOS, la tua app può inviare foto, video e adesivi all'app Instagram. L'app Instagram riceve questi contenuti e li carica nello strumento di composizione delle storie in modo che l'utente possa pubblicarli su Instagram Stories.
Lo strumento di composizione delle storie dell'app Instagram è composto da un livello di sfondo e da un livello di adesivi. Livello di sfondoIl livello di sfondo riempie lo schermo e puoi personalizzarlo con foto, video, colore a tinta unita o un gradiente di colore. Livello di adesiviIl livello di adesivi può contenere un'immagine e può essere ulteriormente personalizzato dall'utente all'interno dello strumento di composizione delle storie. |
Le implementazioni di Android utilizzano intent impliciti per avviare l'app Instagram e passarle i contenuti. In generale, il flusso di condivisione dovrebbe:
Invii i seguenti dati durante la condivisione nelle storie.
Contenuto | Tipo | Descrizione |
---|---|---|
ID app Facebook | Stringa | Il tuo ID app Facebook. |
Risorsa di sfondo | Uri a una risorsa immagine (JPG, PNG) o a una risorsa video (H.264, H.265, WebM). Dimensioni minime 720x1280. Proporzioni consigliate dell'immagine 9:16 o 9:18. I video possono essere 1080p e avere una durata fino a 20 secondi. L'Uri deve essere un Uri contenuto in un file locale sul dispositivo. Devi inviare una risorsa di sfondo, una risorsa adesivo o entrambe. | |
Risorsa adesivo | Uri a una risorsa immagine (JPG, PNG). Dimensioni consigliate: 640x480. Questa immagine viene posizionata come adesivo sullo sfondo. L'Uri deve essere un Uri contenuto in un file locale sul dispositivo. Devi inviare una risorsa di sfondo, una risorsa adesivo o entrambe. | |
Colore superiore del livello di sfondo | Stringa | Un valore del colore in stringa esadecimale utilizzato in combinazione con il valore del colore inferiore del livello di sfondo. Se i valori coincidono, il livello di sfondo è un colore a tinta unita. Se differiscono, vengono usati per generare un gradiente. Se specifichi una risorsa di sfondo, tale risorsa viene usata e questo valore viene ignorato. |
Colore inferiore livello di sfondo | Stringa | Un valore del colore in stringa esadecimale utilizzato in combinazione con il valore del colore superiore del livello di sfondo. Se i valori coincidono, il livello di sfondo è un colore a tinta unita. Se differiscono, vengono usati per generare un gradiente. Se specifichi una risorsa di sfondo, tale risorsa viene usata e questo valore viene ignorato. |
L'esempio di codice seguente invia un'immagine a Instagram in modo che l'utente possa pubblicarla nelle proprie 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); }
Questo esempio invia a Instagram una risorsa immagine del livello di adesivi e una serie di colori del livello di sfondo. Se non indichi i colori del livello di sfondo, il colore del livello di sfondo è impostato su #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); }
Questo esempio invia a Instagram una risorsa immagine del livello di sfondo e una del livello di adesivi.
// 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); }
Le implementazioni iOS utilizzano uno schema URL personalizzato per avviare l'app Instagram e passarle i contenuti. In generale, il flusso di condivisione dovrebbe:
Invii i seguenti dati durante la condivisione nelle storie.
Contenuto | Tipo | Descrizione |
---|---|---|
ID app Facebook | Il tuo ID app Facebook. | |
Risorsa immagine di sfondo | Dati per una risorsa immagine in un formato supportato (JPG, PNG). Dimensioni minime 720x1280. Proporzioni consigliate dell'immagine 9:16 o 9:18. Devi passare all'app Instagram una risorsa di sfondo (immagine o video), una risorsa adesivo o entrambe. | |
Risorsa video di sfondo | Dati per una risorsa video in un formato supportato (H.264, H.265, WebM). I video possono essere 1080p e avere una durata fino a 20 secondi. La dimensione consigliata è inferiore a 50 MB. Devi passare all'app Instagram una risorsa di sfondo (immagine o video), una risorsa adesivo o entrambe. | |
Risorsa adesivo | Dati per una risorsa immagine in un formato supportato (JPG, PNG). Dimensioni consigliate: 640x480. Questa immagine viene posizionata come adesivo sullo sfondo. Devi passare all'app Instagram una risorsa di sfondo (immagine o video), una risorsa adesivo o entrambe. | |
Colore superiore del livello di sfondo | Un valore del colore in stringa esadecimale utilizzato in combinazione con il valore del colore inferiore del livello di sfondo. Se i valori coincidono, il livello di sfondo è un colore a tinta unita. Se differiscono, vengono usati per generare un gradiente. | |
Colore inferiore livello di sfondo | Un valore del colore in stringa esadecimale utilizzato in combinazione con il valore del colore inferiore del livello di sfondo. Se i valori coincidono, il livello di sfondo è un colore a tinta unita. Se differiscono, vengono usati per generare un gradiente. |
Affinché la tua app utilizzi lo schema URL personalizzato di Instagram, devi registrarlo. Aggiungi instagram-stories
alla chiave LSApplicationQueriesSchemes
nell'Info.plist
della tua app.
L'esempio di codice seguente invia una risorsa immagine del livello di sfondo a Instagram in modo che l'utente possa modificarla e pubblicarla nelle proprie 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 } }
Questo esempio di codice mostra come passare all'app Instagram una risorsa immagine del livello di adesivi e un insieme di colori per il livello di sfondo. Se non indichi i colori del livello di sfondo, il colore del livello di sfondo è impostato su #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 } }
Questo esempio di codice mostra come passare all'app Instagram una risorsa immagine del livello di sfondo e una risorsa immagine del livello di adesivi.
- (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 } }
Puoi anche consentire agli utenti della tua app di condividere i tuoi contenuti in una storia di Facebook. Per informazioni su come eseguire questa operazione, consulta la nostra documentazione Condivisione nelle storie di Facebook.