@hellekin Спасибо за отчёт. На сервисе ActivityPub всегда будет происходить определённое количество неудачных запросов, так как акторы в федериве появляются и исчезают. Например, похоже на то, что:
Подробность логов предназначена для отладки, однако если они засоряют ваши логи, вы можете отключить их в настройках сайта activity pub verbose logging. По умолчанию эта опция выключена.
Мы планируем внести улучшения в обработку ошибок во второй фазе, если это потребуется, но пока что опубликованные вами фрагменты выглядят ожидаемыми, то есть акторы действительно больше не находятся в федериве.
В настоящее время плагин обрабатывает сбои доставки так же, как и Mastodon: если в течение 7 дней запросы к конечной точке не удаются, она помечается как «недоступная», и попытки выполнения запросов к ней прекращаются.
Я только что настроил новый саморазмещённый Discourse с вашим плагином Activity Pub по адресу https://federation.cafe и вижу некоторые ошибки 403 в логах ошибок Discourse (и посты не публикуются).
Интересует, может ли это быть связано с наличием дефисов?
[Discourse Activity Pub] GET-запрос к https://bofh.social/internal/fetch не удался: Ожидалось([200, 201, 202, 301, 302, 307, 308]) <= Фактически(403 Forbidden)
Несколько моментов, которые стоит отметить изначально:
Плагин MVP протестирован в связке с Mastodon. Я вижу, что вы используете Pleroma. Я знаю, что Pleroma соответствует ActivityPub и работает с Mastodon, однако мы ещё не детально изучали, какие именно доработки (если они вообще нужны) потребуются для обеспечения его поддержки. Но нам всё же интересно узнать, что происходит в вашем случае.
Похоже, что запросы не прошли из-за ошибки аутентификации на вашем сервере Pleroma (именно это означает ошибка 403). Поскольку я могу выполнить GET-запрос к этому эндпоинту без аутентификации через cURL, я подозреваю, что проблема может быть в HTTP-аутентификации на стороне Pleroma.
Чтобы проверить второе (то есть пункт 2), не могли бы вы, если возможно, посмотреть логи вашего сервера Pleroma (похоже, вы там тоже администратор?), чтобы получить более подробную информацию об этой части процесса?
Спасибо за обратную связь, @bmann. Не могли бы вы подробнее рассказать о сценарии использования, который вы имеете в виду? Желательно с примером.
Эта тема — лучшее место, чтобы быть в курсе развития событий. Когда мы определимся с планом на второй этап, я опубликую его здесь. Тем временем лучший способ помочь — это делиться конкретными сценариями использования, которые вы применяете или хотели бы применять для этого плагина.
Сценарий использования заключается в применении Discourse как полноценного узла ActivityPub. Существует множество более простых способов публикации контента в ActivityPub (например, использование RSS-лент категорий и сервисов Zapier или Buffer), однако реализация расширенных возможностей ActivityPub возможна только в виде плагина или интеграции.
Article — это тип ActivityStreams, предназначенный для полноценных статей. В зависимости от интерфейса клиента он может отображать превью, а затем по клику показывать всю статью внутри (похоже на предупреждения о содержимом, но с функцией «Читать далее»).
Note — это тип для микроблогинга.
Благодаря поддержке полноценных постов типа Article пользователи смогут напрямую читать, репостить и отвечать на них в своих клиентах ActivityPub.
И, конечно, было бы интересно узнать о вашем плане развития: будете ли вы следовать пути микроблогингового узла ActivityPub или двигаться в сторону федеративных форумов, как Lemmy или Kbin, особенно в свете недавних новостей о Reddit.
@angus, @pmusaraj, вы видели открытый конкурс на получение финансирования NGI Sargasso? Сроки подачи заявок довольно сжатые, но это может быть полезно для дальнейшего развития этого плагина (если у вас ещё нет других планов).
Привет, ребята! Рад сообщить, что вторая фаза работ над этим плагином утверждена. Вот над чем мы уже начали работать с целью релиза примерно через 3,5 месяца.
Обработка специальных символов (возможно, использование другого парсера). Подробнее.
Поддержка использования статьи вместо заметки в качестве объекта для поста.
Настройка на уровне категории
Поддержка принятия активностей в ответ на заметку, созданную на удалённых серверах, и публикации активностей в ответ на заметку, созданную в Discourse.
Публикация активностей, касающихся ответов, созданных в Discourse
Разрешить пользователям Discourse выступать в роли акторов
Создавать объекты заметок для ответов в Discourse (постов)
Публиковать соответствующие активности создания/удаления/обновления/отмены для эквивалентных действий в Discourse
Принятие активностей, касающихся ответов, созданных на удалённых серверах
Стабилизация акторов активностей с удалённых серверов как пользователей Discourse
Создание ответов в Discourse (постов) из объектов заметок
Преобразование соответствующих активностей создания/удаления/обновления/отмены в эквивалентные действия в Discourse
Добавлена настройка категории для переключения между «Только первый пост» (текущее поведение) и «Полная тема», поддерживающая активности ответов.
Поддержка верификации пользователями Discourse своей личности в Mastodon, чтобы посты в Discourse, созданные из их твитов (toots), были связаны с их учётной записью в Discourse.
Разрешить пользователю выполнить процесс авторизации OAuth в Mastodon с сервером Mastodon, где хранится его учётная запись. Это инициируется из настроек учётной записи пользователя в Discourse.
Используя токен доступа Mastodon пользователя Discourse, получить и сохранить AP-идентификатор его учётной записи Mastodon и связать его с учётной записью пользователя в Discourse.
Связать все активности в Discourse, соответствующие AP-активностям от актора, имеющего AP-идентификатор пользователя Discourse, с этим пользователем, независимо от того, были ли они выполнены до или после верификации личности пользователя.
На данном этапе я не могу дать никаких обещаний, но вполне возможны промежуточные обновления как для обновления федерации, так и для таргетинга аудитории (публичные публикации).
Это известное ограничение. До тех пор, пока не будет поддерживаться синхронизация правок, плагин блокирует изменения в синхронизируемом контенте, и отключить это поведение через конфигурацию невозможно.
Ой, извините, что я неправильно понял. По крайней мере, @feature@meta.discourse.org и @announcements@meta.discourse.org здесь федеративно распространяются, и именно это является главной причиной, по которой я не включил эту функцию для Maker Forums…
Да, это первый элемент Фазы 2, над которым я работал. Более того, для него уже создан PR, так что скоро вы получите по этому вопросу некоторое облегчение.