+1 за полную ленту ICS с фильтрацией по теме. Я понимаю, что это сложно из-за вопросов конфиденциальности. Обычно генерируется случайная хеш-лента, представляющая персональную ленту пользователя.
Хочу также поддержать эту функцию. Я уже проголосовал за эту тему.
Возвращение возможности экспорта ICS для всего сайта или для каждого пользователя было бы крайне ценно для рабочего процесса нашего сообщества. Есть ли какие-либо обновления по пересмотру того, что было удалено в PR #231?
Если существуют опасения по поводу конфиденциальности или реализации, возможно, стоит рассмотреть решение в виде приватной ICS-ленты для каждого пользователя.
Я вернул возможность экспорта в формате ICS через GET /discourse-post-event/events.ics (начиная с DEV: add ical format response for discourse-post-events index route by tyb-talks · Pull Request #35143 · discourse/discourse · GitHub). Обратите внимание, что этот эндпоинт имеет жёсткое ограничение в 200 событий. Если на вашем сайте больше событий и вы хотите выполнить полный экспорт, вы можете перебирать их, используя параметры запроса before и after, которые принимают строки дат. В ближайшее время мы добавим полный список допустимых параметров для этого эндпоинта в документацию API.
Спасибо за мерж PR #35143 — здорово, что экспорт .ics официально вернулся.
Хотел уточнить один момент: есть ли возможность (или план на будущее) аутентифицировать эту ленту с помощью токена пользователя или API-ключа, аналогично тому, как Discourse обрабатывает приватные RSS/Atom-ленты (/topics/feed.rss?token=…)?
Сейчас /discourse-post-event/events.ics работает только для публичных событий, что означает, что Outlook и Google Calendar не могут подписываться на приватные категории.
Даже простой подход на основе токенов (на пользователя или на сайт, только для чтения) позволил бы безопасно предоставлять доступ к приватным событиям в календарных клиентах без необходимости проксировать ленту через внешний скрипт.
Можно ли это добавить, или такая возможность уже есть через какой-то параметр, который я мог упустить?
Это звучит как отдельная просьба о новой функции. Я считаю, что технически это реализуемо с помощью API-ключа, поэтому вопрос скорее в том, как это проще всего реализовать.
Закрываю эту тему, чтобы вы могли создать отдельный запрос по этому поводу.