![](https://webcf.waybackmachine.org/web/20240229115156/https://habrastorage.org/getpro/habr/upload_files/3b4/192/e6f/3b4192e6f7303acfb24a7d8e98241182.png)
Сегодня всё больше и больше сервисов объявляют о своей поддержке ActivityPub, в том числе даже такие, как Tumblr или Threads. И это ожидаемо, так как ActivityPub позволяет сохранять контроль над собственными данными, в отличие от закрытых сервисов Meta. Кроме того, это позволяет обмениваться данными более независимо (Fediverse). Применение ActivityPub не ограничивается социальными сетями и блогами. Есть сервисы для хостинга изображений, видео, музыки и многое другое.
Если рассматривать все эти активности как события, то это позволит сервису Awakari открыть целое новое измерение в Fediverse. Используя Awakari можно отслеживать интересные события из неограниченного множества источников.
Термины
Awakari - бесплатный сервис, который фильтрует события из общего потока по критериям пользователя (ключевые слова, числовые условия, группы условий). События собираются из множества различнх источников (RSS/Atom, WebSub, Telegram, Fediverse).
В терминах ActivityPub источник событий называется "актор". Поэтому в дальнейшем я буду называть все возможнные "профили" и "аккаунты" Fediverse акторами.
При конвертации исходной активности (JSON) в формат CloudEvents (используется внутри Awakari) все атрибуты по возоможности сохраняются такими, какие они есть. Есть исключения и они задокументированы.
Использование на практике
Можно просто зайти в какой-нибудь сервис, поддерживающий протокол ActivityPub и скопировать адрес необходимого "актора". Например, в Mastodon, в профиле актора всегда есть кнопка "Copy link to profile".
![](https://webcf.waybackmachine.org/web/20240229115156/https://habrastorage.org/getpro/habr/upload_files/980/716/51b/98071651bc95d1de919e303f8dfa8398.png)
В разных сервисах это выглядит немного по-разному, но обычно адрес актора легко найти. Есть различные форматы адреса актора:
Прямая ссылка на актора, например: https://mastodon.social/users/Mastodon
Ссылка-ярлык (алиас): https://mastodon.social/@Mastodon
WebFinger адрес: [email protected]
Awakari понимает все три варианта и автоматически определяет прямую ссылку на актора из ярлыка или WebFinger адреса. Внутри системы источник всегда регистрируется только по прямой ссылке. После получения адреса актора нужно открыть интерфейс Awakari и на вкладке "Pub" нажать кнопку "+ Source".
![](https://webcf.waybackmachine.org/web/20240229115156/https://habrastorage.org/getpro/habr/upload_files/0eb/8fb/90e/0eb8fb90e12966002868ef7d8560829c.png)
Если удалось определить актора и подписаться на него, система сообщает прямую ссылку на зарегистрированного актора. Теперь все активности данного актора будут поступать в Awakari. Можно создать какую-нибдуь подписку, чтобы фильтровать нужные события и ждать, пока что-нибудь интересное не произойдет. Тестировать тоже просто - добавьте собственный профиль в качестве источника и опубликуйте в Mastodon пост, содержащий ключевые слова, чтобы срабатывала ваша подписка:
![](https://webcf.waybackmachine.org/web/20240229115156/https://habrastorage.org/getpro/habr/upload_files/3bf/c20/cb4/3bfc20cb4af215833135b0a93d132ac5.png)
Интеграция с ActivityPub сейчас лучше всего протестирована и работает с серверами на основе Mastodon, Friendica и Hubzilla. Теоретически, должны работать и остальные варианты, но некоторые сервисы пока сопротивляются отказываются.
Отдельное спасибо автору @grishkaaза статью Пишем минимальный ActivityPub-сервер с нуля, которая значительно облегчила всю работу в этом направлении.