Condivisione nelle storie

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).

Panoramica

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 sfondo

Il livello di sfondo riempie lo schermo e puoi personalizzarlo con foto, video, colore a tinta unita o un gradiente di colore.

Livello di adesivi

Il livello di adesivi può contenere un'immagine e può essere ulteriormente personalizzato dall'utente all'interno dello strumento di composizione delle storie.

Sviluppatori Android

Le implementazioni di Android utilizzano intent impliciti per avviare l'app Instagram e passarle i contenuti. In generale, il flusso di condivisione dovrebbe:

  1. istanziare un'intenzione implicita con i contenuti che desideri passare all'app Instagram;
  2. avviare un'attività e verificare che possa risolvere l'intenzione implicita;
  3. risolvere l'attività se è in grado di farlo.

Dati

Invii i seguenti dati durante la condivisione nelle storie.

ContenutoTipoDescrizione

ID app Facebook

Stringa

Il tuo ID app Facebook.

Risorsa di sfondo

Uri

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

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.

Condivisione di una risorsa di sfondo

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);
}  

Condivisione di una risorsa adesivo

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);
}

Condivisione di una risorsa di sfondo e una risorsa adesivo

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);
}

Sviluppatori iOS

Le implementazioni iOS utilizzano uno schema URL personalizzato per avviare l'app Instagram e passarle i contenuti. In generale, il flusso di condivisione dovrebbe:

  1. verificare che la tua app possa risolvere lo schema URL personalizzato di Instagram;
  2. assegnare i contenuti che desideri condividere al pasteboard;
  3. risolvere lo schema URL personalizzato se la tua app è in grado di farlo.

Dati

Invii i seguenti dati durante la condivisione nelle storie.

ContenutoTipoDescrizione

ID app Facebook

NSString *

Il tuo ID app Facebook.

Risorsa immagine di sfondo

NSData *

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

NSData *

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

NSData *

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

NSString *

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

NSString *

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.

Registrazione dello schema URL personalizzato di Instagram

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.

Condivisione di una risorsa di sfondo

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
  }
} 

Condivisione di una risorsa adesivo

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
  }
}

Condivisione di una risorsa di sfondo e una risorsa adesivo

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
  }
}

Condivisione in Facebook Stories

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.