Поддерживаемый формат RSS-файлов
Наш сервис поддерживает постинг материалов из RSS-лент, соответствующих формату RSS 2.0, опубликованном на странице стандарта по адресу http://cyber.law.harvard.edu/rss/rss.html. В данном описании указаны особенности работы с этим форматом нашего сервиса.
В целом работа с форматом достаточно очевидна, однако есть несколько нюансов, на которых мы и остановимся.
Обновление ленты - уникальность записей
Как известно, RSS-лента содержит некоторое количество последних записей в потоке. Т.е. это не очередь, которую вы можете прочитать и поставить на публикацию, а несколько последних записей, и опубликованы они уже в соцсети или нет, в RSS не отмечено.
В связи с этим наш сервис самостоятельно определяет новизну записей по простому критерию - публиковалась такая запись уже или нет. Не публиковалась - значит, запись новая, нужно её поместить в очередь на публикацию. Публиковалась - значит, запись нас уже не интересует. При этом критерии уникальности определяются при подключении ленты - сам пользователь указывает, по набору каких полей определять уникальность записи.
Привязка картинок
При публикации материалов в соцсетях очень хочется, чтобы материал был красочным. Самый простой (и, пожалуй, единственный) способ достижения цели - привязка к нему картинок или видео. Для этого в стандарте RSS присутствует тег <enclosure>, позволяющий привязать к каждому материалу свои медиа-файлы. Наш сервис понимает этот тег и использует его при постинге, но есть ограничения: многие соцсети позволяют прикрепить к материалу не более одной картинки, поэтому из набора прикреплённых картинок в некоторые соцсети может опубликоваться только одна.
Однако есть и другая проблема - многие разработчики при формировании RSS-лент игнорируют описание стандарта и не используют тег <enclosure>. Для таких случаев мы также анализируем тег <media:content>. Некоторые авторы идут ещё дальше и вставляют в тег <description> HTML-код с картинкой, считая, что так описание лучше выглядит. Возможно, в чём-то они и правы, однако это нарушение стандарта. Тем не менее, т.к. таких лент достаточно много, мы встроили в наш сервис анализатор HTML-кода в теге <description>. Он вызывается в том случае, если в ленте нет тегов <enclosure> или <media:content>, и извлекает первую картинку в описании. Таким образом даже если RSS-лента не соответствует требованиям формата, мы всё равно стараемся извлечь из неё максимум.
Текст новости
Формат RSS ориентирован на экспорт анонсов новостей, чтобы заинтересовавшиеся пользователи зашли на сайт-источник. Поэтому в стандарте нет поля для помещения текста новости, но есть поле для помещения анонса - <description>. Наш сервис берёт в качестве текста материала именно данные из этого поля. Однако если в RSS-ленте не оказывается этого поля или оно оказывается пустым, сервис пытается взять данные из тега <content>, а если и его нет - из тега <yandex:full-text> - ещё одно отступление от стандарта в помощь нашим пользователям. При этом теги <content> и <yandex:full-text> анализируются и при наличии поля <description> - из них мы пытаемся вытащить "полный текст" для тега #FULLTEXT# в шаблоне. Итого для понимания: в RSS-ленте анализируются три тега: <description>, <content> и <yandex:full-text> (именно в такой последовательности), при этом первые два заполненных попадают в теги #TEXT# и #FULLTEXT# шаблона публикации.
Публикация с хештегами
Во многих соцсетях имеют очень важное значение для продвижения хэштеги (слова в тексте сообщения, предварённые символом решётки, например, #автопостинг). Вы можете выделить таким образом слова в тексте новости, а можете добавить список таких тегов в специальный тег <seolit:hashtags> (тип - строка). Важно заметить, что в текст публикации хэштеги помещаются "как есть", без какого-либо форматирования, так что наличие символа решётки в списке хэштегов - задача формирующей RSS/Atom-ленты программы.
При подключении собственного шаблона вы можете указать, в какое место материала следует поместить хэштеги, указав в шаблоне метку #TAGS#. Очень не рекомендуем помещать эту метку в верхнюю часть шаблона после текста самой новости - в этом случае хэштеги почти наверняка будут отброшены. В типовом шаблоне они находятся в нижней части шаблона после URL, что позволяет опубликовать их целиком без какого-либо усечения.
Есть вопросы? Обращайтесь к нам через форму обратной связи - мы постараемся максимально оперативно ответить на все ваши вопросы.