В этом документе рассказывается, как интегрировать функцию репостов в приложение для Android, чтобы пользователи могли делиться изображениями, видео и наклейками в Instagram Reels.
Reels LayersThe Reels composer has a background video layer and an optional sticker layer.
Sharing Icon
|
You will need:
By accessing and using this functionality, you acknowledge and agree to be bound by the Meta Platform Terms and Developer Policies. You also represent and warrant that any content made available through your application or website, or shared to Instagram Reels from your application or website, does not infringe upon the intellectual property rights of any third party and that you own, control or have otherwise secured all rights necessary to distribute, copy, publicly perform and display, or otherwise use the content via this functionality, including as uploaded and shared on Instagram Reels. You further represent and warrant that you have the authority to make the foregoing representations on behalf of your organization. If you do not have such authority or are otherwise unable to make the foregoing representations, you are not authorized to continue and should not do so.
Чтобы запустить приложение Instagram и отправить его контент для Reels, используйте явное намерение. Приложение Instagram получит этот контент и загрузит его в редактор Reels, чтобы пользователь мог отредактировать его опубликовать в Reels.
В общем случае процесс репоста выглядит следующим образом:
"com.instagram.android"
, чтобы приложение Instagram могло обработать это намерение.Удаляйте все временные файлы, которые создаете на устройстве пользователя.
При репосте в Reels вам надо отправить следующие данные.
Данные | Описание |
---|---|
ID приложения Meta Строка | Обязательный параметр. ID вашего приложения Meta |
Медиаобъекты строка для одного объектаили список для нескольких объектов | Обязательный параметр. Требуется один из перечисленных ниже параметров:
|
Объект стикера Строка | URI локального файла стикера на устройстве пользователя. Допустимые форматы стикеров: |
В следующих примерах кода на Java и Kotlin показано, как отправлять одно изображение или видео, несколько изображений или видео и изображения или видео со стикером.
Следующий пример кода отправляет файл в Instagram, чтобы пользователь мог отредактировать его и опубликовать в Instagram Reels.
// 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)
}
Следующий пример кода отправляет в Instagram несколько файлов, чтобы пользователь мог отредактировать их и опубликовать в Instagram Reels.
// 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)
}
Следующий пример кода отправляет в Instagram видео и необязательный стикер, чтобы пользователь мог отредактировать и опубликовать его в Instagram Reels.
// 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)
}
Чтобы разработчикам было удобнее, компания Meta опубликовала пример кода для публикации в Instagram Reels на GitHub: fbsamples/share_to_reels_android. Чтобы узнать, как пользоваться примером на GitHub, посмотрите следующий видеокурс.