Плагин ActivityPub

Ах, приятно слышать! Да, наверное, вы правы насчёт подписки на тех, кто публикует в форуме, но могла бы быть функция публикации в феди-вселенной, а не в форуме. Например, NodeBB помещает весь контент из феди-вселенной вне сообществ в категорию «Без категории», так что если вы публикуете там, это во многом похоже на публикацию в Mastodon. Mbin тоже делает что-то подобное: они начинали как агрегатор ссылок, а затем добавили вкладку «Микроблогинг». Понимаю, что на данный момент это не входит в сферу задач Discourse, спасибо за разъяснение!

2 лайка

Есть безумцы (как я), которые хотят использовать Discourse как свой основной дом в Фидиверсе. Я хочу публиковаться в Фидиверс исключительно через Discourse.

Разве мы не должны поддержать тех, кто использует Discourse как решение для «работы на виду» или «чего-то лучшего, чем блог»?

Поскольку реализация пожеланий пользователей не приносит прибыли, рассматривали ли вы возможность голосования за функции с помощью денег?

4 лайка

Голосование за деньги поддерживается. Вы можете финансировать разработку после того, как убедитесь, что новые функции соответствуют тегу pr-welcome.

1 лайк

С другой стороны, именно так Facebook работает с группами и контактами, и это одна из причин, почему пользователи так привязаны к этой платформе. Поскольку вы всё равно будете взаимодействовать со своими контактами, это «переносит» посты из групп/сообществ в это пространство.

Я легко могу представить, что такая функция была бы чрезвычайно ценной для моего сообщества. Сообщества объединяют людей, и они захотят сохранить эту связь «вне» самого сообщества. Если инструмент сообщества позволяет перенести это дополнительное взаимодействие в то же пространство/приложение, это предотвратит исход людей, построивших прочные отношения внутри сообщества, в другие социальные платформы.

Я понимаю, что мы не пытаемся здесь «скопировать Facebook», но стоит задуматься, почему он так хорошо работает для определённых задач.

Мне бы очень хотелось иметь возможность сказать моим участникам, уходящим из Facebook: «Смотрите, вы можете создать аккаунт в фединверсе и связаться с интересными вам людьми в неформальном общении».
Возможно, это следует рассматривать как способ предоставить участникам сообщества пространство для неформального общения, которое более «открыто».

С моей точки зрения, это имело бы полный смысл. Отсутствие интеграции между «социальными сетями» (аккаунты в фединверсе), блогами (хотя связь их с фединверсом уже налаживается) и сообществами мешает таким открытым инструментам, как Mastodon, Discourse или WordPress, стать эффективной альтернативой Facebook.

Что ж — Mastodon и WordPress уже делают всё это. Discourse лишь отчасти, и его направление в основном внешнее, но это не платформа социальных сетей.

При попытке подписаться на @announcements@meta.discourse.org мы получаем следующее сообщение об ошибке:

В логах есть два предупреждения:

Не удалось обработать https://meta.discourse.org/ap/actor/68efb2d756abf76171ed302b7ffd3c58: не удалось найти актора

GET-запрос к https://meta.discourse.org/ap/actor/68efb2d756abf76171ed302b7ffd3c58 не удался:

Мы можем подписываться на акторов в Mastodon, однако.

Я что-то упускаю или как можно продолжить расследование?

Могу подтвердить идентичное поведение; вот логи:

Started POST "/webfinger/handle/validate" for 172.17.0.1 at 2026-03-15 16:10:39 +0000
Processing by DiscourseActivityPub::Webfinger::HandleController#validate as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org"}
Completed 200 OK in 36ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 11.8ms)
Started GET "/ap/local/actor/57934/find-by-handle?handle=%40announcements%40meta.discourse.org" for 172.17.0.1 at 2026-03-15 16:10:40 +0000
Processing by DiscourseActivityPub::ActorController#find_by_handle as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org", "actor_id" => "57934"}
Started POST "/webfinger/handle/validate" for 172.17.0.1 at 2026-03-15 16:10:43 +0000
Processing by DiscourseActivityPub::Webfinger::HandleController#validate as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org"}
Completed 200 OK in 32ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.8ms)
Started GET "/ap/local/actor/57934/find-by-handle?handle=%40announcements%40meta.discourse.org" for 172.17.0.1 at 2026-03-15 16:10:43 +0000
Processing by DiscourseActivityPub::ActorController#find_by_handle as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org", "actor_id" => "57934"}
Started POST "/webfinger/handle/validate" for 172.17.0.1 at 2026-03-15 16:10:43 +0000
Processing by DiscourseActivityPub::Webfinger::HandleController#validate as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org"}
Completed 200 OK in 30ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)
Started GET "/ap/local/actor/57934/find-by-handle?handle=%40announcements%40meta.discourse.org" for 172.17.0.1 at 2026-03-15 16:10:43 +0000
Processing by DiscourseActivityPub::ActorController#find_by_handle as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org", "actor_id" => "57934"}
Started POST "/webfinger/handle/validate" for 172.17.0.1 at 2026-03-15 16:10:44 +0000
Processing by DiscourseActivityPub::Webfinger::HandleController#validate as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org"}
Completed 200 OK in 26ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.3ms)
Started GET "/ap/local/actor/57934/find-by-handle?handle=%40announcements%40meta.discourse.org" for 172.17.0.1 at 2026-03-15 16:10:44 +0000
Processing by DiscourseActivityPub::ActorController#find_by_handle as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org", "actor_id" => "57934"}
Started POST "/webfinger/handle/validate" for 172.17.0.1 at 2026-03-15 16:10:44 +0000
Processing by DiscourseActivityPub::Webfinger::HandleController#validate as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org"}
Completed 200 OK in 24ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.3ms)
Started GET "/ap/local/actor/57934/find-by-handle?handle=%40announcements%40meta.discourse.org" for 172.17.0.1 at 2026-03-15 16:10:44 +0000
Processing by DiscourseActivityPub::ActorController#find_by_handle as JSON
  Parameters: {"handle" => "@announcements@meta.discourse.org", "actor_id" => "57934"}
2 лайка

Какая у вас версия Discourse? Я могу найти этого актора в другом экземпляре Discourse:

1 лайк

Мы используем последнюю версию 2026.3.0-latest

Мы находимся на версии 2026.1.2 (808b2ac23d) с версией плагина (d99071e0)

Просто добавлю здесь. На версии 2026.5.0-latest с в остальном работающим актором категории наблюдается та же проблема. Я могу подписываться на акторов Mastodon, но не на акторов Discourse.

2 лайка

Спасибо за отчет, мы скоро займемся этим.

2 лайка