Chia sẻ lên Tin

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 AndroidBắ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)Lấy ID ứng dụng (iOS).

Tổng quan

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ền

Lớ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án

Lớ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.

Nhà phát triển Android

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ẽ:

  1. Tạo một ý định ẩn kèm theo nội dung bạn muốn chuyển đến ứng dụng Instagram.
  2. Bắt đầu một hoạt động và kiểm tra để đảm bảo rằng hoạt động đó có thể xử lý ý định ẩn này.
  3. Xử lý hoạt động đó nếu có thể.

Dữ liệu

Bạn gửi dữ liệu dưới đây khi chia sẻ lên Tin.

Nội dungLoạiMô 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

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

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.

Chia sẻ tài sản nền

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);
}  

Chia sẻ tài sản nhãn dán

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);
}

Chia sẻ tài sản nền và tài sản nhãn dán

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);
}

Nhà phát triển iOS

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ẽ:

  1. Kiểm tra để đảm bảo rằng ứng dụng của bạn có thể xử lý giao thức URL tùy chỉnh của Instagram.
  2. Chỉ định nội dung bạn muốn chia sẻ lên pasteboard.
  3. Xử lý giao thức URL tùy chỉnh nếu ứng dụng của bạn có thể thực hiện điều này.

Dữ liệu

Bạn gửi dữ liệu dưới đây khi chia sẻ lên Tin.

Nội dungLoạiMô tả

ID ứng dụng trên Facebook

NSString *

ID ứng dụng trên Facebook của bạn.

Tài sản hình ảnh nền

NSData *

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

NSData *

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

NSData *

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

NSString *

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

NSString *

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.

Đăng ký giao thức URL tùy chỉnh của Instagram

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.

Chia sẻ tài sản nền

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
  }
} 

Chia sẻ tài sản nhãn dán

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
  }
}

Chia sẻ tài sản nền và tài sản nhãn dán

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
  }
}

Chia sẻ lên Facebook Stories

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.