Ce document explique comment intégrer le partage dans votre application Android afin que les utilisateur·ices puissent partager des images, des vidéos et des stickers dans des Reels sur Instagram.
Reels LayersThe Reels composer has a background video layer and an optional sticker layer.
Sharing Icon
|
Vous pouvez envoyer un intent explicite pour lancer l’application Instagram et lui envoyer des contenus pour les publier dans des Reels. L’application Instagram reçoit le contenu et le charge dans l’éditeur de Reels afin que l’utilisateur ou utilisatrice puisse le modifier et le publier dans ses Reels.
En général, le processus est le suivant :
"com.instagram.android" pour garantir la prise en charge de l’intent par l’application Instagram.Supprimez les fichiers temporaires que vous créez sur l’appareil de l’utilisateur·ice.
Vous devez envoyer les données suivantes lorsque vous partagez dans les Reels.
| Données | Description |
|---|---|
ID d’application Meta chaîne | Obligatoire. Votre ID d’application Meta |
Vos contenus multimédias chaîne pour un seul contenuou liste de plusieurs contenus | Obligatoire. Vous devez choisir l’une des options suivantes :
|
Stickers chaîne | L’URI d’un sticker enregistré localement sur l’appareil de l’utilisateur·ice. Formats acceptés : |
Les exemples de code Java et Kotlin ci-dessous illustrent comment envoyer une seule image ou vidéo, plusieurs images ou vidéo, et des images ou vidéos avec un sticker.
L’exemple de code suivant envoie un fichier à Instagram de sorte que l’utilisateur ou l’utilisatrice puisse le modifier et le publier dans ses Reels Instagram.
// Instantiate an intent
val intent = Intent("com.instagram.share.ADD_TO_REEL")
// Set package
intent.setPackage("com.instagram.android")
// Attach your App ID to the intent
val appId = "your-app-id"
intent.putExtra("com.instagram.platform.extra.APPLICATION_ID", appId)
// Attach your image or video to the intent from a URI
val mediaAssetUri = Uri.parse("your-image-or-video-asset-uri-goes-here")
intent.setDataAndType(mediaAssetUri, "image/* video/*")
intent.putExtra(Intent.EXTRA_STREAM, mediaAssetUri)
// Instantiate an activity
val activity: Activity = getActivity()
// Grant URI permissions
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
val resInfoList = activity.packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
activity.grantUriPermission(packageName, mediaAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
// Verify that the activity resolves the intent and start it
if (activity.packageManager.resolveActivity(intent, 0) != null) {
activity.startActivityForResult(intent, 0)
}L’exemple de code suivant envoie plusieurs fichiers à Instagram de sorte que l’utilisateur ou l’utilisatrice puisse les modifier et les publier dans ses Reels Instagram.
// Instantiate an intent
val intent = Intent("com.instagram.share.ADD_TO_REEL_MULTIPLE")
// Set package
intent.setPackage("com.instagram.android")
// Attach your App ID to the intent
val appId = "your-app-id"
intent.putExtra("com.instagram.platform.extra.APPLICATION_ID", appId)
intent.setType("image/* video/*")
// Attach your files to the intent
val uri1 = Uri.parse("your-first-uri-goes-here")
val uri2 = Uri.parse("your-second-uri-goes-here")
val mediaList = mutableListOf<Uri>()
mediaList.addAll(listOf(uri1, uri2))
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, ArrayList(mediaList))
// Instantiate an activity
val activity: Activity = getActivity()
// Grant URI permissions
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
val resInfoList =
activity.packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
for (uri in mediaList) {
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
activity.grantUriPermission(packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
}
// Verify that the activity resolves the intent and start it
if (activity.packageManager.resolveActivity(intent, 0) != null) {
activity.startActivityForResult(intent, 0)
}L’exemple de code suivant envoie une vidéo avec un sticker en option à Instagram de sorte que l’utilisateur ou l’utilisatrice puisse la modifier et la publier dans ses Reels Instagram.
// Instantiate an intent
val intent = Intent("com.instagram.share.ADD_TO_REEL")
// Set package
intent.setPackage("com.instagram.android")
// Attach your App ID to the intent
val appId = "your-app-id"
intent.putExtra("com.instagram.platform.extra.APPLICATION_ID", appId)
// Attach your video to the intent from a URI
val videoAssetUri = Uri.parse("your-video-asset-uri-goes-here")
intent.setDataAndType(videoAssetUri, "video/*")
intent.putExtra(Intent.EXTRA_STREAM, videoAssetUri)
// Attach your sticker to the intent from a URI
val stickerAssetUri = Uri.parse("your-image-asset-uri-goes-here")
intent.putExtra("interactive_asset_uri", stickerAssetUri)
// Instantiate an activity
val activity: Activity = getActivity()
// Grant URI permissions
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
val resInfoList = activity.packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
for (resolveInfo in resInfoList) {
val packageName = resolveInfo.activityInfo.packageName
activity.grantUriPermission(packageName, videoAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
activity.grantUriPermission(packageName, stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
// Verify that the activity resolves the intent and start it
if (activity.packageManager.resolveActivity(intent, 0) != null) {
activity.startActivityForResult(intent, 0)
}Pour faciliter le travail des développeurs et développeuses, Meta a publié cet exemple de code pour le partage dans les Reels Instagram sur GitHub à l’adresse fbsamples/share_to_reels_android. Regardez la vidéo suivante pour découvrir comment utiliser l’exemple de code GitHub.