[Перевод] ActivityPub в Awakari
Сегодня всё больше и больше сервисов объявляют о своей поддержке ActivityPub, в том числе даже такие, как Tumblr или Threads. И это ожидаемо, так как ActivityPub позволяет сохранять контроль над собственными данными, в отличие от закрытых сервисов Meta. Кроме того, это позволяет обмениваться данными более независимо (Fediverse). Применение ActivityPub не ограничивается социальными сетями и блогами. Есть сервисы для хостинга изображений, видео, музыки и многое другое.
Если рассматривать все эти активности как события, то это позволит сервису Awakari открыть целое новое измерение в Fediverse. Используя Awakari можно отслеживать любые события, подходящие под произвольные критерия из неограниченного множества источников. И это всё вдобавок к уже имеющимся типам источников Awakari, таких как RSS или каналы Телеграм.
Термины
Awakari — бесплатный сервис, который фильтрует события из общего потока по критериям пользователя (ключевые слова, числовые условия, группы условий). События собираются из множества различнх источников (RSS/Atom, WebSub, Telegram, Fediverse).
В терминах ActivityPub источник событий называется «актор». Поэтому в дальнейшем я буду называть все возможнные «профили» и «аккаунты» Fediverse акторами.
При конвертации исходной активности (JSON) в формат CloudEvents (используется внутри Awakari) все атрибуты по возоможности сохраняются такими, какие они есть. Есть исключения и они задокументированы.
Использование на практике
Можно просто зайти в какой-нибудь сервис, поддерживающий протокол ActivityPub и скопировать адрес необходимого «актора». Например, в Mastodon, в профиле актора всегда есть кнопка «Copy link to profile».
В разных сервисах это выглядит немного по-разному, но обычно адрес актора легко найти. Есть различные форматы адреса актора:
Прямая ссылка на актора, например: https://mastodon.social/users/Mastodon
Ссылка-ярлык (алиас): https://mastodon.social/@Mastodon
WebFinger адрес: Mastodon@mastodon.social
Awakari понимает все три варианта и автоматически определяет прямую ссылку на актора из ярлыка или WebFinger адреса. Внутри системы источник всегда регистрируется только по прямой ссылке. После получения адреса актора нужно открыть интерфейс Awakari и на вкладке «Pub» нажать кнопку »+ Source».
Если удалось определить актора и подписаться на него, система сообщает прямую ссылку на зарегистрированного актора. Теперь все активности данного актора будут поступать в Awakari. Можно создать какую-нибдуь подписку, чтобы фильтровать нужные события и ждать, пока что-нибудь интересное не произойдет. Тестировать тоже просто — добавьте собственный профиль в качестве источника и опубликуйте в Mastodon пост, содержащий ключевые слова, чтобы срабатывала ваша подписка:
Интеграция с ActivityPub сейчас лучше всего протестирована и работает с серверами на основе Mastodon, Friendica и Hubzilla. Теоретически, должны работать и остальные варианты, но некоторые сервисы пока сопротивляются отказываются.
Отдельное спасибо автору @grishkaaза статью Пишем минимальный ActivityPub-сервер с нуля, которая значительно облегчила всю работу в этом направлении.