المشاركة في القصص

يمكنك دمج ميزة المشاركة في تطبيقات 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

تستخدم عمليات تنفيذ Android النوايا الضمنية لبدء تشغيل تطبيق Instagram وإرسال محتوى إليه. بشكل عام، يجب على دفق المشاركة أن يلبي الآتي:

  1. إنشاء مثيل لنوايا مضمنة بالمحتوى الذي تريد إرساله إلى تطبيق Instagram.
  2. بدء نشاط والتحقق من قدرته على حل النوايا المضمنة.
  3. حل النشاط إن أمكن.

البيانات

يمكنك إرسال البيانات التالية عند استخدام ميزة المشاركة في القصص.

المحتوىالنوعالوصف

معرف تطبيق فيسبوك

String (سلسلة)

معرف تطبيق فيسبوك.

أصل الخلفية

Uri

محدد Uri لأصل صورة (بتنسيق JPG أو PNG) أو أصل فيديو (بمعيار H.264 أو H.265 أو WebM). الحد الأدنى للأبعاد 720 × 1280. نسبتا العرض إلى الارتفاع للصورة الموصى بهما 9:16 أو 9:18. قد تكون مقاطع الفيديو بدقة 1080p، ولا تتجاوز مدتها 20 ثانية. محدد Uri يجب أن يكون محدد 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

تستخدم عمليات تنفيذ iOS مخطط عنوان URL مخصصًا لبدء تشغيل تطبيق Instagram وإرسال محتوى إليه. بشكل عام، يجب على دفق المشاركة أن يلبي الآتي:

  1. التحقق من أنه يمكن لتطبيقك حل مخطط عنوان URL مخصص في Instagram.
  2. تعيين المحتوى الذي تريد مشاركته إلى اللوحة pasteboard.
  3. حل مخطط عنوان URL مخصص إذا كان يمكن لتطبيقك إجراء ذلك.

البيانات

يمكنك إرسال البيانات التالية عند استخدام ميزة المشاركة في القصص.

المحتوىالنوعالوصف

معرف تطبيق فيسبوك

NSString *

معرف تطبيق فيسبوك.

أصل صورة الخلفية

NSData *

بيانات أصل صورة بتنسيق مدعوم (JPG، ‏PNG). الحد الأدنى للأبعاد 720 × 1280. نسبتا العرض إلى الارتفاع للصورة الموصى بهما 9:16 أو 9:18. يجب عليك إرسال أصل خلفية (صورة أو فيديو) أو أصل ملصق أو كليهما إلى تطبيق Instagram.

أصل فيديو الخلفية

NSData *

بيانات أصل فيديو بتنسيق مدعوم (H.264، ‏H.265، ‏WebM). قد تكون مقاطع الفيديو بدقة 1080p، ولا تتجاوز مدتها 20 ثانية. يوصى باستخدام فيدو بحجم أقل من 50 مبجابايت. يجب عليك إرسال أصل خلفية (صورة أو فيديو) أو أصل ملصق أو كليهما إلى تطبيق Instagram.

أصل الملصق

NSData *

بيانات أصل صورة بتنسيق مدعوم (JPG، ‏PNG). الأبعاد الموصى بها: 640×480. تظهر هذه الصورة كملصق على الخلفية. يجب عليك إرسال أصل خلفية (صورة أو فيديو) أو أصل ملصق أو كليهما إلى تطبيق Instagram.

اللون العلوي لطبقة الخلفية

NSString *

قيمة ألوان تتكون من سلسلة سداسية مُستخدمة مع قيمة الألوان السفلية لطبقة الخلفية. في حالة تطابق القيمتين، تتوفر طبقة الخلفية بلون أساسي. أما في حالة اختلاف القيم، فيتم استخدامها لإنشاء تدرج ألوان.

اللون السفلي لطبقة الخلفية

NSString *

قيمة ألوان تتكون من سلسلة سداسية مُستخدمة مع قيمة الألوان السفلية لطبقة الخلفية. في حالة تطابق القيمتين، تتوفر طبقة الخلفية بلون أساسي. أما في حالة اختلاف القيم، فيتم استخدامها لإنشاء تدرج ألوان.

تسجيل مخطط عنوان URL مخصص في 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
  }
}

مشاركة إلى Facebook Stories

يمكنك أيضًا السماح لمستخدمي تطبيقك بمشاركة المحتوى الذي توفره كحدث في فيسبوك. للتعرف على كيفية إجراء ذلك، يُرجى الرجوع إلى وثائق المشاركة في القصص في فيسبوك.