إعداد فاعل ActivityPub

يغطي هذا الموضوع إعداد ActivityPub Actor في Discourse باستخدام Discourse ActivityPub Plugin. إذا لم تكن متأكدًا مما يعنيه هذا، فانتقل أولاً إلى موضوع Discourse ActivityPub Plugin.

الخطوة التالية

تعليمات

لإنشاء ActivityPub Actor:

  1. انتقل إلى المسؤول > الإضافات > ActivityPub.
  2. انقر فوق “إضافة Actor”.
  3. املأ نموذج إضافة Actor (يتم شرح الإعدادات أدناه).
  4. انقر فوق “حفظ Actor”.

عند حفظ الـ Actor، يمكن للـ Actors الآخرين في Fediverse البدء في متابعته. يمكنك تعطيل Actor عن طريق تبديل تبديل “ممكّن” على اليمين من عرض تحرير Actor.

إعدادات Actor

اسم المستخدم

هذا هو الجزء الأول من معرّف ActivityPub الخاص بالـ Actor، على سبيل المثال، announcements هو اسم المستخدم لـ announcements@meta.discourse.org. سيكون هذا هو الأساس لاسم المستخدم الخاص بالمستخدم الخاص بالـ Actor على مثيلات Discourse البعيدة (إذا كان اسم المستخدم مأخوذًا بالفعل على هذا المثيل، فسيتم إضافة عدد صحيح لضمان التفرد).

:point_right: تترجم هذه الخاصية إلى preferredUsername في مواصفات ActivityPub.
:point_right: حاليًا، لا يمكن تغيير هذا بمجرد تعيينه. سيتغير هذا إذا أو عندما يتم دمج هذا الطلب في Mastodon.

الاسم

هذا هو الاسم المعروض للـ Actor. سيعتمد كيفية استخدامه على كيفية تنفيذه بواسطة الخدمات الأخرى. في Discourse، سيصبح هذا “الاسم” الخاص بالمستخدم الخاص بالـ Actor.

الرؤية

يحدد هذا ما إذا كانت الأنشطة المنشورة بواسطة الـ Actor لها “معالجة عامة”. يجب ترك هذا على “عام” ما لم تكن تعرف ما تفعله.

:point_right: هذا هو نفس الفرق بين المنشورات “العامة” و “الخاصة” (للمتابعين فقط) على Mastodon.

نوع كائن المنشور

يحدد هذا ما إذا كان الـ Actor سينشر المنشورات كـ Note أو Article. يجب ترك هذا على Note ما لم تكن تعرف ما تفعله.

:point_right: سينشر Mastodon رابطًا للمنشور الأصلي فقط إذا تلقى Article.

نوع النشر

الموضوع الكامل

سيتم نشر جميع المنشورات في موضوع مرتبط بالـ Actor وسيتم تحويل جميع الردود من Fediverse إلى منشورات.

المنشور الأول

سيتم نشر المنشور الأول فقط في موضوع مرتبط بالـ Actor ولن يتم تحويل أي ردود من Fediverse إلى منشورات.

3 إعجابات

لقد أضفت المكون الإضافي للتو إلى تثبيت discourse 3.3.2. يمكنني رؤية المكون الإضافي في قائمة المكونات الإضافية، وتفضيلات المكون الإضافي، وما إلى ذلك.

ومع ذلك، عند محاولة إضافة جهات فاعلة، يمكنني فقط إضافة جهات فاعلة للعلامات (التي لا أحتاجها)، ولكن ليس للفئات. يبدو أن هذا نوع من مشكلة واجهة المستخدم / جانب المتصفح (أنا لست مطور ويب).

لقد جربت باستخدام Firefox و Chromium على Debian، وكلاهما يعرض نفس السلوك

  • إضافة جهات فاعلة للعلامات يعمل كما هو متوقع
  • إضافة جهات فاعلة للفئات مستحيلة حيث لا يتم عرض مربع اختيار للفئات أبدًا يمين خيار تحديد نموذج / فئة.

أتلقى

runtime.js:912 Uncaught TypeError: Cannot read properties of null (reading 'firstNode')
    at ue.firstNode (runtime.js:912:1)
    at T (runtime.js:241:1)
    at ue.reset (runtime.js:983:1)
    at ae.resume (runtime.js:686:1)
    at Ut.handleException (runtime.js:4309:1)
    at Vt.handleException (runtime.js:4521:1)
    at Dt.throw (runtime.js:4260:1)
    at $e.evaluate (runtime.js:2088:1)
    at Dt._execute (runtime.js:4247:1)
    at Dt.execute (runtime.js:4232:1)
    at qt.rerender (runtime.js:4547:1)
    at hr.render (index.js:4674:1)
    at index.js:4934:1
    at Nt (runtime.js:4080:1)
    at gr._renderRoots (index.js:4916:1)
    at gr._renderRootsTransaction (index.js:4960:1)
    at gr._revalidate (index.js:4992:1)
    at invoke (backburner.js.js:280:1)
    at h.flush (backburner.js.js:197:1)
    at p.flush (backburner.js.js:358:1)
    at B._end (backburner.js.js:798:1)
    at B.end (backburner.js.js:589:1)
    at B._run (backburner.js.js:842:1)
    at B._join (backburner.js.js:819:1)
    at B.join (backburner.js.js:629:1)
    at l (index.js:81:1)
    at u.onHover (index.js:118:1)
    at e.handleMouseEnter (select-kit-row.js:83:22)

خطأ في وحدة تحكم المطور عند تحديد “فئة” من زر “تحديد نموذج”.

بشكل عام، يتم تقديم الدعم فقط على Meta لأحدث الإصدارات المستقرة أو التي تم اجتياز الاختبارات لها - هل هناك أي سبب لتأخرك؟ يجدر الترقية إلى أحدث إصدار والمحاولة مرة أخرى.

لقد كان خطأ مطبعي، آسف. أنا على الإصدار 3.3.2.

إعجاب واحد (1)

مرحباً @LaF0rge، هذه الإضافة تدعم حاليًا أحدث إصدار من Discourse فقط. انظر المزيد:

إعجاب واحد (1)

مرحباً @angus - شكراً على ردك. للأسف، أنا لست على استعداد لترقية تثبيت الإنتاج الخاص بنا إلى إصدار تجريبي أو الإصدار الرئيسي الحالي من git. أعتقد أنني سأنتظر حتى يتم وضع علامة/إصدار إصدار مستقر جديد من discourse.

بالمناسبة: هل هناك أي معلومات منظمة متاحة تشير إلى الحد الأدنى لمتطلبات إصدار المكون الإضافي؟ لم أره هنا في المنشور الأولي للموضوع، ولا في GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse.

في مشاريع/منتجات برمجية أخرى، عادةً ما تشير المكونات الإضافية إلى توافق الإصدار.

بالنظر إلى أن المكون الإضافي موجود منذ أكثر من عام، أعتقد أن خيارًا آخر سيكون الرجوع إلى إصدار سابق من المكون الإضافي، من حوالي الوقت الذي كان فيه 3.3.2 هو الحالي؟ ومع ذلك، في سجل الالتزام لم أتمكن من رؤية أي إشارات فورية لإصدارات discourse.

ما لم يكن لديك سبب محدد لعدم القيام بذلك، فمن المستحسن استخدام فرع tests-passed من Discourse. انظر المزيد:

علاوة على ذلك، يمكنك افتراض أن الإضافات أو التخصيصات التي تحمل علامة experimental (كما تفعل إضافة ActivityPub) تعمل بشكل موثوق فقط على أحدث إصدار من Discourse.

وبشكل أكثر تحديدًا لأسئلتك الضمنية حول إدارة الإصدارات، في إضافات Discourse، يتم التعامل مع هذا عبر ملف .discourse-compatibility الذي يمكنك القراءة عنه هنا:

انظر ملف توافق إضافة ActivityPub هنا:

نظرًا لأن إضافة ActivityPub لا تزال #experimental، فإن ضمان التوافق مع الإصدارات السابقة لم يكن محور تركيز، ومع ذلك سأقوم بالتحقيق في إضافة دعم صريح لـ 3.3.2 إلى هذا الملف في وقت مبكر من الأسبوع المقبل.

ولكن كما ذكرت أعلاه، ما لم يكن لديك سبب وجيه لعدم القيام بذلك، أقترح استخدام tests-passed.

3 إعجابات

@LaF0rge لقد نظرت في هذا للتو.

لا يحتاج المكون الإضافي إلى إضافة دعم صريح لـ 3.3.2 لأنه يحتوي بالفعل على هذا في ملف التوافق.

< 3.4.0.beta1-dev: 3a6512d0560211b93f022a27ed7276024d0020dc

إذا كنت تستخدم تثبيتًا قياسيًا لـ Discourse على 3.3.2، فستكون تلقائيًا على الالتزام 3a6512d0560211b93f022a27ed7276024d0020dc للمكون الإضافي والذي تعمل فيه قائمة القوائم المنسدلة للفئات. انظر المزيد:

شكراً على مدخلاتك الإضافية. لقد قمت للتو بمحاولة أخرى في وقت سابق اليوم لاستخدام الالتزام بالمكون الإضافي 3a6512d0560211b93f022a27ed7276024d0020dc مع نسخة discourse 3.3.3 التي قمت بترقيتها الآن، لكنني انتهيت في حالة تم فيها الرد على جميع طلبات HTTP بـ Completed 500 Internal Server Error in 42ms (ActiveRecord: 0.0ms | Allocations: 16860) بغض النظر عن أي عنوان URL. لم يكن هناك شيء في production.log، ولم يتم تسجيل أي شيء خاطئ في المخرجات القياسية/الأخطاء، ولم يكن هناك شيء في passenger.3000.log أيضاً. أدى إزالة المكون الإضافي من دليل المكونات الإضافية + إعادة التشغيل إلى حل المشكلة. كان يمكن تكرارها عدة مرات.

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

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

أسمعك - لكنني لن أحيد عن تثبيت وتشغيل الإصدارات المصنفة/المُصدرة من البرامج. بالنسبة لـ discourse، هذا هو AFAICT في هذه المرحلة 3.3.3.

أجد أنه من غير المريح والمقلق للغاية تشغيل أنظمة الإنتاج على أي شيء بخلاف الإصدارات المصنفة. يمكنك مناداتي بالرجعي، لكنني أقوم بتشغيل (وتطوير) أنظمة تكنولوجيا المعلومات بنجاح منذ منتصف التسعينيات.

أحترم أن لديك و/أو مجتمع مطوري discourse الرسمي موقفًا/نهجًا مختلفًا. نتفق على الاختلاف. شكرًا لك على مساعدتك حتى الآن على الرغم من ذلك!

إعجاب واحد (1)