Tài liệu này hướng dẫn bạn cách tích hợp tính năng chia sẻ vào ứng dụng Android của mình để người dùng có thể chia sẻ hình ảnh, video và nhãn dán lên Reels trên Instagram.
Reels LayersThe Reels composer has a background video layer and an optional sticker layer.
Sharing Icon
|
Bạn có thể sử dụng Ý định rõ ràng để khởi chạy ứng dụng Instagram và gửi nội dung lên Reels. Ứng dụng Instagram sẽ nhận và tải nội dung vào Công cụ tạo thước phim, sau đó người dùng có thể chỉnh sửa và đăng nội dung này lên Reels.
Nhìn chung, quy trình chia sẻ như sau:
"com.instagram.android" để đảm bảo rằng ứng dụng Instagram xử lý ý định đó.Gỡ bất kỳ file tạm thời nào mà bạn tạo trên thiết bị của người dùng.
Bạn cần gửi dữ liệu dưới đây khi chia sẻ lên Reels.
| Dữ liệu | Mô tả |
|---|---|
ID ứng dụng trên Meta string | Bắt buộc. ID ứng dụng trên Meta của bạn |
Tài sản file phương tiện string đối với một tài sảnhoặc danh sách đối với nhiều tài sản | Bắt buộc. Bạn cần có một trong các tùy chọn sau:
|
Tài sản nhãn dán string | URI của nhãn dán - một file cục bộ trên thiết bị của người dùng. Các định dạng nhãn dán được chấp nhận: |
Các ví dụ sau đây về mã Java và Kotlin hướng dẫn cách gửi một hình ảnh hoặc video, cách gửi nhiều hình ảnh hoặc video, cũng như cách gửi hình ảnh hoặc video kèm theo nhãn dán.
Ví dụ về mã dưới đây gửi một file đến Instagram để người dùng có thể chỉnh sửa và đăng lên 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)
}Ví dụ về mã dưới đây gửi nhiều file đến Instagram để người dùng có thể chỉnh sửa và đăng lên 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)
}Ví dụ về mã dưới đây gửi một video đến Instagram và đính kèm nhãn dán không bắt buộc để người dùng có thể chỉnh sửa và đăng lên 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)
}Để thuận tiện hơn cho nhà phát triển, Meta đã đăng mã mẫu cho tính năng Chia sẻ lên Instagram Reels trên GitHub tại fbsamples/share_to_reels_android. Hãy xem video dưới đây để tìm hiểu cách sử dụng Mẫu trên GitHub.