Bạn có thể tích hợp tính năng chia sẻ vào ứng dụng Android và iOS của mình để người dùng có thể chia sẻ nội dung dưới dạng tin trên Instagram. Để tạo ứng dụng mới, hãy xem phần Bắt đầu sử dụng Facebook SDK dành cho Android và Bắt đầu sử dụng Facebook SDK dành cho iOS.
Kể từ tháng 01/2023, bạn phải cung cấp ID ứng dụng trên Facebook để chia sẻ nội dung lên Instagram Stories. Để biết thêm thông tin, hãy xem phần Giới thiệu điểm cập nhật quan trọng đối với tính năng Chia sẻ lên Tin trên Instagram. Nếu bạn không cung cấp ID ứng dụng, người dùng sẽ nhìn thấy thông báo lỗi "Ứng dụng mà bạn dùng để chia sẻ chưa hỗ trợ chia sẻ lên Tin" khi họ cố chia sẻ nội dung của mình lên Instagram. Để tìm ID ứng dụng của bạn, hãy xem phần Lấy ID ứng dụng (Android) và Lấy ID ứng dụng (iOS).
Khi bạn sử dụng Ý định ngầm ẩn trong Android và Giao thức URL tùy chỉnh trong iOS, ứng dụng của bạn có thể gửi ảnh, video và nhãn dán đến ứng dụng Instagram. Ứng dụng Instagram sẽ nhận và tải nội dung này vào trình biên soạn tin để Người dùng có thể đăng lên Instagram Stories của họ.
Trình biên soạn tin của ứng dụng Instagram gồm có một lớp nền và một lớp nhãn dán. Lớp nềnLớp nền phủ kín màn hình và bạn có thể tùy chỉnh lớp này bằng ảnh, video, một màu đồng nhất hoặc hiệu ứng chuyển màu. Lớp nhãn dánLớp nhãn dán có thể có một hình ảnh và Người dùng có thể tùy chỉnh thêm lớp này trong trình biên soạn tin. |
Các hoạt động triển khai trên Android sử dụng ý định ẩn để chạy ứng dụng Instagram và truyền nội dung đến ứng dụng này. Nói chung, luồng chia sẻ của bạn sẽ:
Bạn gửi dữ liệu dưới đây khi chia sẻ lên Tin.
Nội dung | Loại | Mô tả |
---|---|---|
ID ứng dụng trên Facebook | Chuỗi | ID ứng dụng trên Facebook của bạn. |
Tài sản nền | Uri đến tài sản hình ảnh (JPG, PNG) hoặc tài sản video (H.264, H.265, WebM). Kích thước tối thiểu 720x1280. Tỷ lệ hình ảnh khuyến nghị 9:16 hoặc 9:18. Video có thể có độ phân giải 1080p và có thể có thời lượng lên tới 20 giây. Uri cần phải là Uri nội dung đến file cục bộ trên thiết bị. Bạn phải gửi tài sản nền, tài sản nhãn dán hoặc cả hai. | |
Tài sản nhãn dán | URI đến tài sản hình ảnh (JPG, PNG). Kích thước khuyên dùng: 640x480. Hình ảnh này sẽ xuất hiện dưới dạng nhãn dán trên nền. Uri cần phải là Uri nội dung đến file cục bộ trên thiết bị. Bạn phải gửi tài sản nền, tài sản nhãn dán hoặc cả hai. | |
Màu ở phần trên cùng của lớp nền | Chuỗi | Giá trị màu theo chuỗi thập lục phân được dùng kết hợp với giá trị màu ở phần dưới cùng của lớp nền. Nếu 2 giá trị này giống nhau, lớp nền sẽ có màu đồng nhất. Nếu 2 giá trị này khác nhau thì chúng sẽ được dùng để tạo màu chuyển sắc. Nếu bạn chỉ định một tài sản nền, tài sản đó sẽ được dùng và giá trị này được bỏ qua. |
Màu ở phần dưới cùng của lớp nền | Chuỗi | Giá trị màu theo chuỗi thập lục phân được dùng kết hợp với giá trị màu ở phần trên cùng của lớp nền. Nếu 2 giá trị này giống nhau, lớp nền sẽ có màu đồng nhất. Nếu 2 giá trị này khác nhau thì chúng sẽ được dùng để tạo màu chuyển sắc. Nếu bạn chỉ định một tài sản nền, tài sản đó sẽ được dùng và giá trị này được bỏ qua. |
Ví dụ về mã dưới đây gửi một hình ảnh đến Instagram để người dùng có thể đăng lên Instagram Stories của họ.
// Instantiate an intent Intent intent = new Intent("com.instagram.share.ADD_TO_STORY"); // Attach your App ID to the intent String sourceApplication = "1234567"; // This is your application's FB ID intent.putExtra("source_application", sourceApplication); // Attach your image to the intent from a URI Uri backgroundAssetUri = Uri.parse("your-image-asset-uri-goes-here"); intent.setDataAndType(backgroundAssetUri, MEDIA_TYPE_JPEG); // Grant URI permissions for the image intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // Instantiate an activity Activity activity = getActivity(); // Verify that the activity resolves the intent and start it if (activity.getPackageManager().resolveActivity(intent, 0) != null) { activity.startActivityForResult(intent, 0); }
Ví dụ này gửi tài sản hình ảnh lớp nhãn dán và nhóm màu của lớp nền đến Instagram. Nếu bạn không chỉ định, màu của lớp nền sẽ là #222222
.
// Instantiate an intent Intent intent = new Intent("com.instagram.share.ADD_TO_STORY"); // Attach your App ID to the intent String sourceApplication = "1234567"; // This is your application's FB ID intent.putExtra("source_application", sourceApplication); // Attach your sticker to the intent from a URI, and set background colors Uri stickerAssetUri = Uri.parse("your-image-asset-uri-goes-here"); intent.setType(MEDIA_TYPE_JPEG); intent.putExtra("interactive_asset_uri", stickerAssetUri); intent.putExtra("top_background_color", "#33FF33"); intent.putExtra("bottom_background_color", "#FF00FF"); // Instantiate an activity Activity activity = getActivity(); // Grant URI permissions for the sticker activity.grantUriPermission( "com.instagram.android", stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); // Verify that the activity resolves the intent and start it if (activity.getPackageManager().resolveActivity(intent, 0) != null) { activity.startActivityForResult(intent, 0); }
Ví dụ này gửi tài sản hình ảnh lớp nền và tài sản hình ảnh lớp nhãn dán đến Instagram.
// Instantiate an intent Intent intent = new Intent("com.instagram.share.ADD_TO_STORY"); // Attach your App ID to the intent String sourceApplication = "1234567"; // This is your application's FB ID intent.putExtra("source_application", sourceApplication); // Attach your image to the intent from a URI Uri backgroundAssetUri = Uri.parse("your-background-image-asset-uri-goes-here"); intent.setDataAndType(backgroundAssetUri, MEDIA_TYPE_JPEG); // Attach your sticker to the intent from a URI Uri stickerAssetUri = Uri.parse("your-sticker-image-asset-uri-goes-here"); intent.putExtra("interactive_asset_uri", stickerAssetUri); // Grant URI permissions for the image intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // Instantiate an activity Activity activity = getActivity(); // Grant URI permissions for the sticker activity.grantUriPermission( "com.instagram.android", stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); // Verify that the activity resolves the intent and start it if (activity.getPackageManager().resolveActivity(intent, 0) != null) { activity.startActivityForResult(intent, 0); }
Các hoạt động triển khai trên iOS sử dụng giao thức URL tùy chỉnh để chạy ứng dụng Instagram và chuyển nội dung đến ứng dụng này. Nói chung, luồng chia sẻ của bạn sẽ:
Bạn gửi dữ liệu dưới đây khi chia sẻ lên Tin.
Nội dung | Loại | Mô tả |
---|---|---|
ID ứng dụng trên Facebook | ID ứng dụng trên Facebook của bạn. | |
Tài sản hình ảnh nền | Dữ liệu của tài sản hình ảnh ở định dạng được hỗ trợ (JPG, PNG). Kích thước tối thiểu 720x1280. Tỷ lệ hình ảnh khuyên dùng 9:16 hoặc 9:18. Bạn phải chuyển tài sản nền (hình ảnh hoặc video), tài sản nhãn dán hoặc cả hai đến ứng dụng Instagram. | |
Tài sản video nền | Dữ liệu của tài sản video ở định dạng được hỗ trợ (H.264, H.265, WebM). Video có thể có độ phân giải 1080p và có thời lượng lên đến 20 giây. Nên dưới 50MB. Bạn phải chuyển tài sản nền (hình ảnh hoặc video), tài sản nhãn dán hoặc cả hai đến ứng dụng Instagram. | |
Tài sản nhãn dán | Dữ liệu của tài sản hình ảnh ở định dạng được hỗ trợ (JPG, PNG). Kích thước khuyên dùng: 640x480. Hình ảnh này sẽ xuất hiện dưới dạng nhãn dán trên nền. Bạn phải chuyển tài sản nền (hình ảnh hoặc video), tài sản nhãn dán hoặc cả hai đến ứng dụng Instagram. | |
Màu ở phần trên cùng của lớp nền | Giá trị màu theo chuỗi thập lục phân được dùng kết hợp với giá trị màu ở phần dưới cùng của lớp nền. Nếu 2 giá trị này giống nhau, lớp nền sẽ có màu đồng nhất. Nếu 2 giá trị này khác nhau thì chúng sẽ được dùng để tạo màu chuyển sắc. | |
Màu ở phần dưới cùng của lớp nền | Giá trị màu theo chuỗi thập lục phân được dùng kết hợp với giá trị màu ở phần dưới cùng của lớp nền. Nếu 2 giá trị này giống nhau, lớp nền sẽ có màu đồng nhất. Nếu 2 giá trị này khác nhau thì chúng sẽ được dùng để tạo màu chuyển sắc. |
Bạn cần đăng ký giao thức URL tùy chỉnh của Instagram thì ứng dụng của bạn mới sử dụng được giao thức đó. Hãy thêm instagram-stories
vào khóa LSApplicationQueriesSchemes
trong Info.plist
của ứng dụng.
Ví dụ về mã dưới đây gửi một tài sản hình ảnh lớp nền đến Instagram để người dùng có thể chỉnh sửa và đăng lên Instagram Stories của họ.
- (void)shareBackgroundImage { // Identify your App ID NSString *const appIDString = @"1234567890"; // Call method to share image [self backgroundImage:UIImagePNGRepresentation([UIImage imageNamed:@"backgroundImage"]) appID:appIDString]; } // Method to share image - (void)backgroundImage:(NSData *)backgroundImage appID:(NSString *)appID { NSURL *urlScheme = [NSURL URLWithString:[NSString stringWithFormat:@"instagram-stories://share?source_application=%@", appID]]; if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) { // Attach the pasteboard items NSArray *pasteboardItems = @[@{@"com.instagram.sharedSticker.backgroundImage" : backgroundImage}]; // Set pasteboard options NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]}; // This call is iOS 10+, can use 'setItems' depending on what versions you support [[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions]; [[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil]; } else { // Handle error cases } }
Mã mẫu này minh họa cách chuyển tài sản hình ảnh lớp nhãn dán và nhóm màu của lớp nền đến ứng dụng Instagram. Nếu bạn không chỉ định, màu của lớp nền sẽ là #222222
.
- (void)shareStickerImage { // Identify your App ID NSString *const appIDString = @"1234567890"; // Call method to share sticker [self stickerImage:UIImagePNGRepresentation([UIImage imageNamed:@"stickerImage"]) backgroundTopColor:@"#444444" backgroundBottomColor:@"#333333" appID:appIDString]; } // Method to share sticker - (void)stickerImage:(NSData *)stickerImage backgroundTopColor:(NSString *)backgroundTopColor backgroundBottomColor:(NSString *)backgroundBottomColor appID:(NSString *)appID { NSURL *urlScheme = [NSURL URLWithString:[NSString stringWithFormat:@"instagram-stories://share?source_application=%@", appID]]; if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) { // Attach the pasteboard items NSArray *pasteboardItems = @[@{@"com.instagram.sharedSticker.stickerImage" : stickerImage, @"com.instagram.sharedSticker.backgroundTopColor" : backgroundTopColor, @"com.instagram.sharedSticker.backgroundBottomColor" : backgroundBottomColor}]; // Set pasteboard options NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]}; // This call is iOS 10+, can use 'setItems' depending on what versions you support [[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions]; [[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil]; } else { // Handle error cases } }
Mã mẫu này minh họa cách chuyển tài sản hình ảnh lớp nền và tài sản hình ảnh lớp nhãn dán đến ứng dụng Instagram.
- (void)shareBackgroundAndStickerImage { // Identify your App ID NSString *const appIDString = @"1234567890"; // Call method to share image and sticker [self backgroundImage:UIImagePNGRepresentation([UIImage imageNamed:@"backgroundImage"]) stickerImage:UIImagePNGRepresentation([UIImage imageNamed:@"stickerImage"]) appID:appIDString]; } // Method to share image and sticker - (void)backgroundImage:(NSData *)backgroundImage stickerImage:(NSData *)stickerImage appID:(NSString *)appID { NSURL *urlScheme = [NSURL URLWithString:[NSString stringWithFormat:@"instagram-stories://share?source_application=%@", appID]]; if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) { // Attach the pasteboard items NSArray *pasteboardItems = @[@{@"com.instagram.sharedSticker.backgroundImage" : backgroundImage, @"com.instagram.sharedSticker.stickerImage" : stickerImage}]; // Set pasteboard options NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]}; // This call is iOS 10+, can use 'setItems' depending on what versions you support [[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions]; [[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil]; } else { // Handle error cases } }
Bạn cũng có thể để Người dùng ứng dụng chia sẻ nội dung của bạn dưới dạng tin trên Facebook. Để tìm hiểu cách thực hiện, vui lòng tham khảo tài liệu Chia sẻ lên Stories của Facebook.