이 문서에서는 사용자가 Instagram 릴스에 이미지, 동영상, 스티커를 공유할 수 있도록 Android 앱에 공유를 통합하는 방법을 보여줍니다.
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 앱을 시작하고 릴스 콘텐츠를 Instagram으로 보냅니다. Instagram 앱이 해당 콘텐츠를 받아서 릴스 작성기에 읽어들이면 사용자가 콘텐츠를 수정하여 릴스에 게시할 수 있습니다.
일반적으로 공유 플로는 다음과 같은 작업을 수행합니다.
"com.instagram.android"
와 동일하게 설정하여 Instagram 앱이 인텐트를 처리하도록 합니다.사용자의 기기에서 생성하는 모든 임시 파일을 삭제합니다.
릴스에 공유하면 다음과 같은 데이터를 보내야 합니다.
데이터 | 설명 |
---|---|
Meta 앱 ID 문자열 | 필수 항목. Meta 앱 ID |
미디어 자산 단일 자산에 대한 문자열또는 여러 자산에 대한 리스트 | 필수 항목. 다음 옵션 중 하나가 필요합니다.
|
스티커 자산 문자열 | 사용자 기기에 있는 로컬 파일인 스티커의 URI. 허용 가능한 스티커 형식은 |
다음 Java 및 Kotlin 코드 예시는 단일 이미지 또는 동영상을 보내는 방법, 여러 이미지 또는 동영상을 보내는 방법, 스티커가 있는 이미지 또는 동영상을 보내는 방법을 보여줍니다.
다음 코드 예시에서는 Instagram에 파일 한 개를 보내서 사용자가 이를 수정하고 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)
}
다음 코드 예시에서는 Instagram에 여러 파일을 보내서 사용자가 이를 수정하고 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)
}
다음 코드 예시에서는 Instagram에 동영상을 보내고 스티커(선택 사항)를 포함하여 사용자가 이를 수정하고 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)
}
개발자가 더욱 편리하게 사용할 수 있도록 Meta는 GitHub의 fbsamples/share_to_reels_android에 Instagram 릴스에 공유하기 샘플 코드를 게시했습니다. 다음 동영상에서 GitHub 샘플을 사용하는 방법을 알아보세요.