الانتقال إلى المحتوى الرئيسي
إصدار تجريبي (Beta). واجهة برمجة تطبيقات الأتمتة قيد الإصدار التجريبي ونحن نجمع الملاحظات بنشاط. قد تتغير نقاط النهاية والحمولات والحدود مع تطويرنا لها. يُرجى إرسال الملاحظات وتقارير الأخطاء إلى الدعم لكي نتمكّن من ترتيب أولويات التحسينات الصحيحة.
تُمكّنك نقاط نهاية الأتمتة من تحديد قواعد تتفاعل تلقائيًا مع التفاعل الوارد على Instagram. تجمع كل أتمتة بين مشغّل واحد أو أكثر (الحدث الذي يُطلق القاعدة) وإجراء واحد أو أكثر (ما يحدث عند إطلاقها). يمكن لقاعدة واحدة أن تستمع لعدة مشغّلات وترسل عدة إجراءات — أطلق Webhook إلى مسار التحليلات لديك وأرسل رسالة خاصة من نفس التفاعل. يعمل المحرّك بالكامل داخل نطاق سياسة Meta (لا توجد رسائل خاصة تُطلق عبر المتابعة، ولا رسائل أولى للغرباء، ولا إرسال جماعي)، ويرث حدود المعدل لكل حساب في Ayrshare وإزالة التكرار لكل مستلم واستيعاب Webhook الآمن من التكرار.

كيف يعمل

1

أنشئ أتمتة

POST /automations مع المشغّلات والإجراءات التي تريدها. تنشط الأتمتة على الفور.
2

يتفاعل مستخدم نهائي

يُعلّق شخص ما على منشورك أو يردّ على ستوري أو يُرسل رسالة خاصة أو يتفاعل مع رسالة خاصة. ترسل Meta الـ Webhook إلى Ayrshare.
3

يطابق Ayrshare ويُرسل

يبحث المحرّك عن كل قاعدة تُطابق الحدث، ويتحقق من إزالة التكرار لكل إجراء وحدّك اليومي للرسائل الخاصة، ثم يُنفّذ كل إجراء. يُطبَّق تأخير عشوائي من 20 إلى 60 ثانية على إرسال الرسائل الخاصة للبقاء ضمن قواعد Instagram لمكافحة الرسائل غير المرغوبة.
4

افحص ما تم إطلاقه

يُعيد GET /automations/:id/activity سجل التدقيق — كل محاولة إرسال ونتائج كل إجراء وأي أخطاء.

المشغّلات

يمكنك ربط ما يصل إلى 50 مشغّلًا بأتمتة واحدة. كل مشغّل عبارة عن اتحاد مميّز على الحقل type؛ توجد الحقول الخاصة بالنوع على نفس المستوى. جميع المشغّلات مقتصرة على Instagram في الإصدار v1. يكون تطابق الكلمات المفتاحية غير حساس لحالة الأحرف ومطابقة كلمة كاملة. يستوفي الحدث مشغّلًا مُصفّى بالكلمات المفتاحية إذا كان يحتوي على أي كلمة من الكلمات المُهيَّأة. اترك storyId فارغًا في مشغّل الستوري للإطلاق على كل ستوري للحساب المتصل.

الإجراءات

يمكنك ربط ما يصل إلى 50 إجراءً بأتمتة واحدة. تُنفَّذ بالتتابع؛ ويُسجَّل كل نتيجة في صف النشاط.

نافذة إزالة التكرار لكل إجراء

يقبل كل إجراء — بغض النظر عن نوعه — حقلًا اختياريًا إضافيًا على المستوى الأعلى باسم dedupWindowMinutes يتجاوز نافذة 7 أيام الافتراضية لإزالة التكرار لكل مستلم لذلك الإجراء فقط.
  • عيّنه إلى 0 لتعطيل إزالة التكرار كليًا لذلك الإجراء (نموذجي لـ fire_webhook / send_email حيث يتوقّع المستقبِل كل حدث).
  • محدود بحد أقصى 525600 (سنة واحدة).
إجراء مع تجاوز إزالة تكرار لمدة 24 ساعة

حمولة fire_webhook

عندما يُنفَّذ fire_webhook فإنه يُرسل POST بجسم JSON إلى عنوان Webhook على مستوى حسابك:
يكون recipientUsername وkeyword بقيمة null عندما لا يُوفّرها المشغّل (على سبيل المثال، dm_keyword لا يحمل اسم مستخدم في حمولة Meta؛ ولا يوجد كلمة مفتاحية لـ story_reply).

متغيرات القالب

تدعم send_dm.message وsend_email.subject وsend_email.message استبدال {{placeholder}}. تُرفض العلامات النائبة غير المعروفة عند الإنشاء/التحديث (كخطأ تحقّق 473) بحيث لا يُسرّب خطأ إملائي سلسلة {{foo}} الحرفية إلى رسالة موجّهة للعميل.
لا يوجد sender_email / recipient_email. لم يتم كشفهما عمدًا — بريدك الإلكتروني للفوترة لا مكان مشروع له في رسالة خاصة إلى غريب، ولا توفّر Meta بريد المستلم الإلكتروني في أي Webhook خاص بـ IG. تجنُّب العلامات النائبة يمنع الكشف العرضي.
قالب مثال:

حدود المعدل والقيود

يُحتسب الحد الأقصى للأتمتة النشطة لكل ملف تعريف مستخدم، وليس لكل حساب أصلي. يحصل كل ملف شخصي ضمن حسابك على 10 لـ Business / 50 لـ Enterprise الخاصة به، لذا يمكن لحساب به عدة ملفات شخصية تشغيل هذا العدد من الأتمتة على كل منها. يُحصي الأتمتة النشطة ويُطبَّق على كل من POST (إنشاء) وPUT لإعادة التنشيط (active: false → true)، ويعرض كل منهما رمز الخطأ 470. تحتاج إلى حد أعلى لكل ملف شخصي؟ اتصل بالدعم لرفعه لحسابك. يُطبَّق الحد اليومي للرسائل الخاصة لكل حساب Ayrshare أصلي، ويُتشارك عبر جميع ملفاتك الشخصية، مع حد فرعي لكل ملف شخصي بحيث لا يستنزف ملف شخصي واحد مشغول حصة الحساب بأكمله. عند بلوغ حد الرسائل الخاصة، يُسجل صف النشاط الحالة rate_limited ولا تُرسَل الرسالة الخاصة. القيود الهيكلية على أتمتة واحدة: من 1 إلى 50 مشغّلًا، من 1 إلى 50 إجراءً. يُحدد Instagram نفسه الرسائل الخاصة بنحو 200/ساعة لكل حساب. يُوزّع المحرك الإرسال بتأخير عشوائي من 20 إلى 60 ثانية للبقاء بأمان تحت هذا الحد.

حالات النشاط

يحمل صف في GET /automations/:id/activity حالة status على المستوى الأعلى بالإضافة إلى status لكل إجراء داخل actionResults[]: pending وin_flight مؤقتتان؛ وكل الحالات الأخرى نهائية.

رموز الخطأ

تُعيد واجهة برمجة التطبيقات شكلين من الأخطاء:
  • أخطاء قواعد العمل تحمل رمز code مرقّم للأتمتة (مثل { "action": "automation", "code": 469, ... }).
  • أخطاء التحقق — أي جسم طلب مشوّه (حقول مفقودة أو غير صالحة، متغيرات قوالب غير معروفة، مفاتيح غير مُعتمدة) — تُعاد كاستجابة واحدة 473 مع كائن details يُدرج الحقول المخالفة. details هي مخرجات المُحقِّق (formErrors بالإضافة إلى fieldErrors). فرِّق بناءً على details، وليس على رمز لكل حالة. في fieldErrors، تكون المفاتيح هي حقول الطلب على المستوى الأعلى (triggers، actions): يُبلَّغ عن مشكلة داخل إدخال محدد، مثل مشغّل يفتقر إلى keywords، تحت ذلك الحقل (مثل triggers)، بينما يحمل formErrors المشكلات على مستوى الكائن مثل المفاتيح غير المُعتمدة.

ما لا تسمح به Meta

بعض القدرات المطلوبة عادةً غير مدعومة لأن Meta لا تسمح بها في واجهة Instagram العامة:
  • رسالة خاصة تلقائية للمتابعين الجدد. لا يُصدر Instagram Webhook للمتابعة.
  • الرسائل الخاصة الأولى للغرباء. تشترط Meta أن يبدأ المستلم الاتصال (تعليق، رد، رسالة خاصة، تفاعل) قبل أن يتمكّن حساب أعمال من مراسلته — وهو بالضبط ما يمثّله كل مشغّل مدعوم هنا.
  • الحملات الصادرة الجماعية. تُطبَّق الحدود بالساعة للرسائل الخاصة وقواعد مكافحة الإساءة على مستوى المنصة.

الاستخدام متعدد الملفات الشخصية

تحترم نقاط النهاية ترويسة profileKey. مرّر مفتاح ملف فرعي وستُنشأ/تُدار الأتمتة تحت ذلك الملف. تنقسم حدود المعدل بين الملفات الشخصية عبر حد فرعي لكل ملف شخصي بحيث لا يستنزف ملف شخصي كثير الحديث حصة الحساب الأصلي.

الأسئلة الشائعة

لا. لا يُصدر Instagram Webhook للمتابعة، ولا تسمح Meta لتطبيقات الأطراف الثالثة بإرسال رسالة خاصة إلى مستخدم لم يبدأ محادثة. كل مشغّل مدعوم (comment_keyword، story_reply، dm_reaction، dm_keyword) يستوفي شرط “المستخدم اتصل بك أولًا”.
يُسجل صف النشاط الحالة auth_error ولا يُعاد محاولة إرسال الرسالة الخاصة. أعِد ربط الحساب، ثم سيُطلق التفاعل المطابق التالي بشكل طبيعي.
يُجدوَل كل إرسال send_dm بعد 20 إلى 60 ثانية من التفاعل ليبدو طبيعيًا لأنظمة Instagram لمكافحة الرسائل غير المرغوبة. لا يوجد تأخير عشوائي لإجراءات fire_webhook وsend_email. الختم الزمني created في صف النشاط هو وقت تطابق المشغّل؛ وcompletedAt هو وقت انتهاء الإرسال.
تُحفظ صفوف النشاط إلى أجل غير مسمى للتتبع والتحليلات. تُعيد نقطة نهاية GET /automations/:id/activity صفوف آخر 30 يومًا لأغراض الأداء. (يستخدم حارس إزالة التكرار نافذته الخاصة لكل إجراء — بشكل افتراضي 7 أيام — وهي غير مرتبطة بفترة استرجاع النشاط.)
لا. الحذف هو حذف ناعم: يُوسَم السجل الرئيسي بـ deleted، ولا تحدث عمليات إرسال جديدة، لكن تبقى صفوف النشاط التاريخية قابلة للقراءة عبر نقطة نهاية النشاط.

نقاط النهاية