Partage dans le fil

Avec le partage dans le fil, vous pouvez autoriser les utilisateurs de votre application à partager votre contenu dans leur fil Instagram.

Présentation

En utilisant les intentions implicites (Android) et les liens universels ou l’API Document Interaction (iOS), votre application peut transmettre des photos et des vidéos à l’application Instagram. Celle-ci reçoit le contenu et le charge dans l’éditeur de fil afin que l’utilisateur puisse le publier sur son fil Instagram.

Développeurs Android

Les implémentations Android utilisent des intentions implicites avec la valeur supplémentaire EXTRA_STREAM pour inviter l’utilisateur à sélectionner l’application Instagram. Une fois cette dernière sélectionnée, l’intention lance Instagram et lui transmet votre contenu, qui est alors chargé dans l’éditeur de fil de l’application Instagram.

En général, le flux de partage doit :

  1. instancier une intention implicite avec le contenu que vous voulez transmettre à l’application Instagram ;
  2. lancer une activité et vérifier que l’intention implicite peut être résolue ;
  3. résoudre l’activité si cela est possible.

Contenu que vous pouvez partager

Vous pouvez transmettre le contenu suivant à l’application Instagram :

ContenuTypes de fichiersDescription

Ressource image

JPEG, GIF ou PNG

-

Ressource fichier

MKV et MP4

Durée minimale : 3 secondes Durée maximale : 10 minutes Dimensions minimales : 640 x 640 pixels

Partage d’une ressource image

String type = "image/*";
String filename = "/myPhoto.jpg";
String mediaPath = Environment.getExternalStorageDirectory() + filename;

createInstagramIntent(type, mediaPath);

private void createInstagramIntent(String type, String mediaPath){

    // Create the new Intent using the 'Send' action.
    Intent share = new Intent(Intent.ACTION_SEND);

    // Set the MIME type
    share.setType(type);

    // Create the URI from the media
    File media = new File(mediaPath);
    Uri uri = Uri.fromFile(media);

    // Add the URI to the Intent.
    share.putExtra(Intent.EXTRA_STREAM, uri);

    // Broadcast the Intent.
    startActivity(Intent.createChooser(share, "Share to"));
}

Partage d’une ressource vidéo

String type = "video/*";
String filename = "/myVideo.mp4";
String mediaPath = Environment.getExternalStorageDirectory() + filename;

createInstagramIntent(type, mediaPath);

private void createInstagramIntent(String type, String mediaPath){

    // Create the new Intent using the 'Send' action.
    Intent share = new Intent(Intent.ACTION_SEND);

    // Set the MIME type
    share.setType(type);

    // Create the URI from the media
    File media = new File(mediaPath);
    Uri uri = Uri.fromFile(media);

    // Add the URI to the Intent.
    share.putExtra(Intent.EXTRA_STREAM, uri);

    // Broadcast the Intent.
    startActivity(Intent.createChooser(share, "Share to"));
}

Développeurs iOS

Les implémentations iOS peuvent utiliser les liens universels pour lancer l’application Instagram et lui transmettre du contenu ou lui faire effectuer une action spécifique.

Liens universels

Utilisez les liens universels répertoriés dans le tableau suivant pour effectuer des actions dans l’application Instagram.

Lien universelAction

https://www.instagram.com

Lance l’application Instagram.

https://www.instagram.com/create/story

Lance l’application Instagram en mode appareil photo ou en affichant la bibliothèque sur les appareils ne disposant pas d’un appareil photo.

https://www.instagram.com/p/{media_id}

Lance l’application Instagram et charge la publication correspondant à la valeur d’identifiant fournie (int).

https://www.instagram.com/{username}

Lance l’application Instagram et charge l’utilisateur Instagram correspondant à la valeur de nom d’utilisateur fournie (string).

https://www.instagram.com/explore/locations/{location_id}

Lance l’application Instagram et charge le fil de lieux correspondant à la valeur d’identifiant fournie (int).

https://www.instagram.com/explore/tags/{tag_name}

Lance l’application Instagram et charge la page pour le hashtag correspondant à la valeur de nom fournie (string).

Exemple de code Objective-C

L’exemple suivant de code Objective-C lance l’application Instagram en mode appareil photo.

NSURL *instagramURL = [NSURL URLWithString:@"https://www.instagram.com/create/story"];
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
    [[UIApplication sharedApplication] openURL:instagramURL];
}

API Document Interaction

Si votre application crée des photos et que vous vouliez que les utilisateurs\utilisatrices puissent les partager sur Instagram, vous pouvez appeler l’API Document Interaction pour ouvrir les photos dans le fil de partage d’Instagram.

Vous devez d’abord enregistrer votre fichier au format PNG ou JPEG (comme vous préférez) et utiliser l’extension de nom de fichier .ig. Avec l’API Document Interaction pour iOS, vous pouvez déclencher l’ouverture des photos par Instagram. L’identifiant pour notre UTI Document Interaction est com.instagram.photo. Il est conforme aux UTI public/jpeg et public/png. Pour en savoir plus, consultez ces articles de la documentation Apple : Previewing and Opening Files (Prévisualisation et ouverture de fichiers) et UIDocumentInteractionController Class Reference (Documentation de référence sur la classe UIDocumentInteractionController).

Par ailleurs, si vous ne voulez afficher que l’application Instagram dans la liste d’applications (au lieu d’Instagram plus toutes les autres applications conformes aux UTI public/jpeg), vous pouvez spécifier la classe d’extension igo, qui est du type com.instagram.exclusivegram.

Lors du déclenchement, Instagram présente immédiatement notre filtre d’écran à l’utilisateur. L’image est préchargée et affichée aux dimensions appropriées à Instagram. Pour de meilleurs résultats, Instagram privilégie l’ouverture d’une image JPEG carrée de 640 x 640 pixels. Si l’image est plus grande, elle sera redimensionnée de manière dynamique.