คุณสามารถผสานการทำงานการแชร์เข้ากับแอพ Android และ iOS ของคุณเพื่อให้ผู้ใช้สามารถแชร์เนื้อหาของคุณเป็นสตอรี่บน Instagram ได้ หากต้องการสร้างแอพใหม่ โปรดดูที่การเริ่มต้นใช้งาน Facebook SDK สำหรับ Android และการเริ่มต้นใช้งาน Facebook SDK สำหรับ iOS
ตั้งแต่เดือนมกราคม 2023 เป็นต้นไป คุณต้องระบุ ID ของแอพ Facebook เพื่อแชร์เนื้อหาไปยัง Instagram Stories โปรดดูข้อมูลเพิ่มเติมที่ขอแนะนำการอัพเดตการแชร์ไปยังสตอรี่บน Instagram ครั้งสำคัญ หากคุณไม่ได้ระบุ ID ของแอพ ผู้ใช้ของคุณจะเห็นข้อความแสดงข้อผิดพลาดว่า "แอพที่คุณแชร์มาไม่รองรับการแชร์ไปยังสตอรี่ในขณะนี้" เมื่อพยายามแชร์เนื้อหาไปยัง Instagram หากต้องการหา ID ของแอพ โปรดดูรับ ID ของแอพของคุณ (Android) และรับ ID ของแอพของคุณ (iOS)
แอพของคุณสามารถส่งรูปภาพ วิดีโอ และสติกเกอร์ไปยังแอพ Instagram ได้โดยใช้ Implicit Intent ของ Android และแผน URL แบบกำหนดเองของ iOS แอพ Instagram จะได้รับเนื้อหานี้และโหลดลงในตัวปรับแต่งเรื่องราวเพื่อให้ผู้ใช้สามารถเผยแพร่เนื้อหาดังกล่าวไปยัง Instagram Stories ของตนได้
ตัวปรับแต่งสตอรี่ของแอพ Instagram ประกอบด้วยเลเยอร์พื้นหลังและเลเยอร์สติกเกอร์ เลเยอร์พื้นหลังเลเยอร์พื้นหลังจะเติมเต็มหน้าจอและคุณจะสามารถปรับแต่งได้ด้วยรูปภาพ วิดีโอ สีทึบ หรือการไล่ระดับสีได้ เลเยอร์สติกเกอร์เลเยอร์สติกเกอร์จะมีรูปภาพ และเลเยอร์นี้สามารถปรับแต่งเพิ่มเติมโดยผู้ใช้ภายในตัวปรับแต่งสตอรี่ได้ |
การนำไปใช้งานของ Android นั้นใช้ Implicit Intent เพื่อเปิดใช้งานแอพ Instagram และส่งเนื้อหาไปยังแอพ โดยทั่วไป ขั้นตอนการแชร์ของคุณควรจะเป็นดังนี้
คุณส่งข้อมูลต่อไปนี้เมื่อคุณแชร์ไปยังสตอรี่
เนื้อหา | ประเภท | คำอธิบาย |
---|---|---|
ID ของแอพ Facebook | สตริง | ID ของแอพ Facebook ของคุณ |
องค์ประกอบพื้นหลัง | URI สำหรับองค์ประกอบที่เป็นรูปภาพ (JPG, PNG) หรือองค์ประกอบที่เป็นวิดีโอ (H.264, H.265, WebM) ขนาดขั้นต่ำ 720x1280 อัตราส่วนภาพที่แนะนำคือ 9:16 หรือ 9:18 วิดีโอสามารถมีความละเอียด 1080p และมีระยะเวลาสูงสุด 20 วินาที URI ต้องเป็น URI เนื้อหาไปยังไฟล์ในเครื่องบนอุปกรณ์ คุณต้องส่งองค์ประกอบพื้นหลัง องค์ประกอบสติกเกอร์ หรือทั้ง 2 อย่าง | |
องค์ประกอบสติกเกอร์ | URI สำหรับองค์ประกอบที่เป็นรูปภาพ (JPG, PNG) ขนาดที่แนะนำ: 640x480 รูปภาพนี้จะปรากฏขึ้นเป็นสติกเกอร์บนพื้นหลัง URI ต้องเป็น URI เนื้อหาไปยังไฟล์ในเครื่องบนอุปกรณ์ คุณต้องส่งองค์ประกอบพื้นหลัง องค์ประกอบสติกเกอร์ หรือทั้ง 2 อย่าง | |
สีด้านบนของเลเยอร์พื้นหลัง | สตริง | ค่าสีของสตริงเลขฐานสิบหกที่ใช้ร่วมกับค่าสีด้านล่างของเลเยอร์พื้นหลัง หากค่าทั้งสองมีค่าเท่ากัน เลเยอร์พื้นหลังจะเป็นสีทึบ หากค่าทั้ง 2 นี้แตกต่างกัน ระบบจะใช้ค่าทั้งสองในการไล่ระดับสี หากคุณระบุองค์ประกอบพื้นหลัง ระบบจะใช้องค์ประกอบดังกล่าวและไม่สนใจค่านี้ |
สีด้านล่างของเลเยอร์พื้นหลัง | สตริง | ค่าสีของสตริงเลขฐานสิบหกจะใช้ร่วมกับค่าสีด้านบนของเลเยอร์พื้นหลัง หากค่าทั้งสองมีค่าเท่ากัน เลเยอร์พื้นหลังจะเป็นสีทึบ หากค่าทั้ง 2 นี้แตกต่างกัน ระบบจะใช้ค่าทั้งสองในการไล่ระดับสี หากคุณระบุองค์ประกอบพื้นหลัง ระบบจะใช้องค์ประกอบดังกล่าวและไม่สนใจค่านี้ |
ตัวอย่างโค้ดต่อไปนี้จะส่งรูปภาพไปยัง Instagram เพื่อให้ผู้ใช้สามารถเผยแพร่ไปยัง Instagram Stories ของตนได้
// 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); }
ตัวอย่างนี้จะส่งองค์ประกอบที่เป็นรูปภาพเลเยอร์สติกเกอร์และชุดสีเลเยอร์พื้นหลังไปยัง Instagram หากคุณไม่ระบุสีเลเยอร์พื้นหลัง สีของเลเยอร์พื้นหลังจะเป็น #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); }
ตัวอย่างนี้จะส่งองค์ประกอบที่เป็นรูปภาพเลเยอร์พื้นหลังและองค์ประกอบที่เป็นรูปภาพเลเยอร์สติกเกอร์ไปยัง 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); }
การนำไปใช้งานของ iOS นั้นใช้แผน URL แบบกำหนดเองเพื่อเปิดใช้งานแอพ Instagram และส่งเนื้อหาไปยังแอพ โดยทั่วไป ขั้นตอนการแชร์ของคุณควรจะเป็นดังนี้
คุณส่งข้อมูลต่อไปนี้เมื่อคุณแชร์ไปยังสตอรี่
เนื้อหา | ประเภท | คำอธิบาย |
---|---|---|
ID ของแอพ Facebook | ID ของแอพ Facebook ของคุณ | |
องค์ประกอบที่เป็นรูปภาพพื้นหลัง | ข้อมูลสำหรับองค์ประกอบที่เป็นรูปภาพในรูปแบบที่รองรับ (JPG, PNG) ขนาดขั้นต่ำ 720x1280 อัตราส่วนภาพที่แนะนำคือ 9:16 หรือ 9:18 คุณต้องส่งองค์ประกอบพื้นหลัง (รูปภาพหรือวิดีโอ) องค์ประกอบสติกเกอร์ หรือทั้ง 2 อย่างไปยังแอพ Instagram | |
องค์ประกอบที่เป็นวิดีโอพื้นหลัง | ข้อมูลสำหรับองค์ประกอบที่เป็นวิดีโอในรูปแบบที่รองรับ (H.264, H.265, WebM) วิดีโอสามารถมีความละเอียด 1080p และมีระยะเวลาสูงสุด 20 วินาที แนะนำให้ไม่เกิน 50 MB คุณต้องส่งองค์ประกอบพื้นหลัง (รูปภาพหรือวิดีโอ) องค์ประกอบสติกเกอร์ หรือทั้ง 2 อย่างไปยังแอพ Instagram | |
องค์ประกอบสติกเกอร์ | ข้อมูลสำหรับองค์ประกอบที่เป็นรูปภาพในรูปแบบที่รองรับ (JPG, PNG) ขนาดที่แนะนำ: 640x480 รูปภาพนี้จะปรากฏขึ้นเป็นสติกเกอร์บนพื้นหลัง คุณต้องส่งองค์ประกอบพื้นหลัง (รูปภาพหรือวิดีโอ) องค์ประกอบสติกเกอร์ หรือทั้ง 2 อย่างไปยังแอพ Instagram | |
สีด้านบนของเลเยอร์พื้นหลัง | ค่าสีของสตริงเลขฐานสิบหกที่ใช้ร่วมกับค่าสีด้านล่างของเลเยอร์พื้นหลัง หากค่าทั้งสองมีค่าเท่ากัน เลเยอร์พื้นหลังจะเป็นสีทึบ หากค่าทั้ง 2 นี้แตกต่างกัน ระบบจะใช้ค่าทั้งสองในการไล่ระดับสี | |
สีด้านล่างของเลเยอร์พื้นหลัง | ค่าสีของสตริงเลขฐานสิบหกที่ใช้ร่วมกับค่าสีด้านล่างของเลเยอร์พื้นหลัง หากค่าทั้งสองมีค่าเท่ากัน เลเยอร์พื้นหลังจะเป็นสีทึบ หากค่าทั้ง 2 นี้แตกต่างกัน ระบบจะใช้ค่าทั้งสองในการไล่ระดับสี |
คุณต้องลงทะเบียนแผน URL แบบกำหนดเองของ Instagram ก่อนที่แอพของคุณจะใช้แผนดังกล่าว เพิ่ม instagram-stories
ไปยังคีย์ LSApplicationQueriesSchemes
ใน Info.plist
ของแอพ
ตัวอย่างโค้ดต่อไปนี้จะส่งองค์ประกอบที่เป็นรูปภาพเลเยอร์พื้นหลังไปยัง Instagram เพื่อให้ผู้ใช้สามารถแก้ไขและเผยแพร่ไปยัง Instagram Stories ของตนได้
- (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 } }
โค้ดตัวอย่างนี้จะแสดงวิธีส่งองค์ประกอบที่เป็นรูปภาพเลเยอร์สติกเกอร์และชุดสีเลเยอร์พื้นหลังไปยังแอพ Instagram หากคุณไม่ระบุสีเลเยอร์พื้นหลัง สีของเลเยอร์พื้นหลังจะเป็น #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 } }
โค้ดตัวอย่างนี้จะแสดงวิธีส่งองค์ประกอบที่เป็นรูปภาพเลเยอร์พื้นหลังและองค์ประกอบที่เป็นรูปภาพเลเยอร์สติกเกอร์ไปยังแอพ 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 } }
คุณยังสามารถอนุญาตให้ผู้ใช้แอพแชร์เนื้อหาของคุณในรูปแบบสตอรี่บน Facebook ได้อีกด้วย โปรดเรียนรู้วิธีดำเนินการดังกล่าวนี้ที่เอกสารประกอบเกี่ยวกับการแชร์ไปยังสตอรี่ของ Facebook