يمكنك دمج ميزة المشاركة في تطبيقات Android وiOS حتى يتمكن المستخدمون من مشاركة المحتوى كقصة في Instagram. لإنشاء تطبيق جديد، راجع بدء استخدام مجموعة Facebook SDK لنظام Android وبدء استخدام مجموعة Facebook SDK لنظام iOS.
اعتبارًا من يناير 2023، يجب توفير AppID في فيسبوك لمشاركة المحتوى في Instagram Stories. لمزيد من المعلومات، راجع طرح تحديث مهم لميزة المشاركة في القصص على Instagram. إذا لم تقم بتوفير AppID، فسيرى المستخدمون رسالة الخطأ "التطبيق الذي شاركت منه المنشور لا يدعم حاليًا المشاركة في القصص" عندما يحاولون مشاركة المحتوى على Instagram. للعثور على معرف تطبيقك، راجع الحصول على معرف التطبيق (Android) والحصول على معرف التطبيق (iOS).
عند استخدام النوايا الضمنية في Android ومخططات عنوان URL المخصصة في iOS، يمكن لتطبيقك إرسال صور ومقاطع فيديو وملصقات إلى تطبيق Instagram. يتلقى تطبيق Instagram هذا المحتوى ويقوم بتحميله في منشئ القصة بحيث يمكن للمستخدم نشره في Instagram Stories لديه.
يتكون منشئ قصة تطبيق Instagram من طبقة خلفية وطبقة ملصق. طبقة الخلفيةتملأ طبقة الخلفية الشاشة، ويمكنك تخصيصها باستخدام صورة أو فيديو أو لون ثابت أو تدرج ألوان. طبقة الملصقيمكن أن تحتوي طبقة الملصق على صورة، ويمكن تخصيص الطبقة أيضًا بواسطة المستخدم في منشئ الحدث. |
تستخدم عمليات تنفيذ Android النوايا الضمنية لبدء تشغيل تطبيق Instagram وإرسال محتوى إليه. بشكل عام، يجب على دفق المشاركة أن يلبي الآتي:
يمكنك إرسال البيانات التالية عند استخدام ميزة المشاركة في القصص.
المحتوى | النوع | الوصف |
---|---|---|
معرف تطبيق فيسبوك | String (سلسلة) | |
أصل الخلفية | محدد Uri لأصل صورة (بتنسيق JPG أو PNG) أو أصل فيديو (بمعيار H.264 أو H.265 أو WebM). الحد الأدنى للأبعاد 720 × 1280. نسبتا العرض إلى الارتفاع للصورة الموصى بهما 9:16 أو 9:18. قد تكون مقاطع الفيديو بدقة 1080p، ولا تتجاوز مدتها 20 ثانية. محدد Uri يجب أن يكون محدد Uri للمحتوى الموجود في ملف محلي على الجهاز. يجب إرسال أصل خلفية أو أصل ملصق أو كليهما. | |
أصل الملصق | محدد Uri لأصل صورة (بتنسيق JPG أو PNG). الأبعاد الموصى بها: 640×480. تظهر هذه الصورة كملصق على الخلفية. محدد Uri يجب أن يكون محدد Uri للمحتوى الموجود في ملف محلي على الجهاز. يجب إرسال أصل خلفية أو أصل ملصق أو كليهما. | |
اللون العلوي لطبقة الخلفية | String (سلسلة) | قيمة ألوان تتكون من سلسلة سداسية مُستخدمة مع قيمة الألوان السفلية لطبقة الخلفية. في حالة تطابق القيمتين، تتوفر طبقة الخلفية بلون أساسي. أما في حالة اختلاف القيم، فيتم استخدامها لإنشاء تدرج ألوان. إذا حددت أصل خلفية، فيتم استخدام الأصل وتجاهل هذه القيمة. |
اللون السفلي لطبقة الخلفية | String (سلسلة) | قيمة ألوان تتكون من سلسلة سداسية مُستخدمة مع قيمة الألوان العلوية لطبقة الخلفية. في حالة تطابق القيمتين، تتوفر طبقة الخلفية بلون أساسي. أما في حالة اختلاف القيم، فيتم استخدامها لإنشاء تدرج ألوان. إذا حددت أصل خلفية، فيتم استخدام الأصل وتجاهل هذه القيمة. |
يرسل المثال على الرمز التالي صورة إلى 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 وإرسال محتوى إليه. بشكل عام، يجب على دفق المشاركة أن يلبي الآتي:
يمكنك إرسال البيانات التالية عند استخدام ميزة المشاركة في القصص.
المحتوى | النوع | الوصف |
---|---|---|
معرف تطبيق فيسبوك | ||
أصل صورة الخلفية | بيانات أصل صورة بتنسيق مدعوم (JPG، PNG). الحد الأدنى للأبعاد 720 × 1280. نسبتا العرض إلى الارتفاع للصورة الموصى بهما 9:16 أو 9:18. يجب عليك إرسال أصل خلفية (صورة أو فيديو) أو أصل ملصق أو كليهما إلى تطبيق Instagram. | |
أصل فيديو الخلفية | بيانات أصل فيديو بتنسيق مدعوم (H.264، H.265، WebM). قد تكون مقاطع الفيديو بدقة 1080p، ولا تتجاوز مدتها 20 ثانية. يوصى باستخدام فيدو بحجم أقل من 50 مبجابايت. يجب عليك إرسال أصل خلفية (صورة أو فيديو) أو أصل ملصق أو كليهما إلى تطبيق Instagram. | |
أصل الملصق | بيانات أصل صورة بتنسيق مدعوم (JPG، PNG). الأبعاد الموصى بها: 640×480. تظهر هذه الصورة كملصق على الخلفية. يجب عليك إرسال أصل خلفية (صورة أو فيديو) أو أصل ملصق أو كليهما إلى تطبيق Instagram. | |
اللون العلوي لطبقة الخلفية | قيمة ألوان تتكون من سلسلة سداسية مُستخدمة مع قيمة الألوان السفلية لطبقة الخلفية. في حالة تطابق القيمتين، تتوفر طبقة الخلفية بلون أساسي. أما في حالة اختلاف القيم، فيتم استخدامها لإنشاء تدرج ألوان. | |
اللون السفلي لطبقة الخلفية | قيمة ألوان تتكون من سلسلة سداسية مُستخدمة مع قيمة الألوان السفلية لطبقة الخلفية. في حالة تطابق القيمتين، تتوفر طبقة الخلفية بلون أساسي. أما في حالة اختلاف القيم، فيتم استخدامها لإنشاء تدرج ألوان. |
تحتاج إلى تسجيل مخطط عنوان 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 } }
يمكنك أيضًا السماح لمستخدمي تطبيقك بمشاركة المحتوى الذي توفره كحدث في فيسبوك. للتعرف على كيفية إجراء ذلك، يُرجى الرجوع إلى وثائق المشاركة في القصص في فيسبوك.