Для работы "rss2post" подойдет любой хостинг с поддержкой php или локально запущенный сервер (denwer, wamp и другие).
Например, скрипт скопирован на сервер в папку rss2post, рабочий адрес будет такой:
yoursite.com/rss2post/cron.phpПосле настройки, для автоматического запуска через каждые 5 минут, рекомендуется добавить задачу в cron:
curl -s 'рабочий адрес' > /dev/null## Настройки RSS. Параметр 'rssFeedUrl' — адрес rss-ленты.
*/5 * * * *
Пример: http://habrahabr.ru/rss/best/
Параметр 'extractImages' — извлекать ли картинки из новости?
Берется первая картинка из текста новости, если она там есть.
true: извлекать.
false: не извлекать.
Параметр 'actualDate' — RSS-новости опубликованные раньше этой даты игнорируются.
Пригодится, если нужно начать постить новости, начиная с конкретной даты. Или false, если не надо.
Пример: '01/23/2014'.
Параметр 'vkAccessToken' — токен для доступа к VK.
Получение токена:
https://oauth.vk.com/authorize?client_id=12345678&scope=wall,photos,offline&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.28&response_type=token
Создать в VK standalone-приложение.
https://vk.com/editapp?act=createВставить id созданного приложения в ссылку вместо 12345678:
https://oauth.vk.com/blank.html#access_token=TOKENb&expires_in=0&user_id=123456789
- После перехода по ссылке и подтверждения доступа в адресной строке появится токен в параметре "access_token":
- Т.к. мы используем приложение для себя и сами себя взламывать через него скорее всего не будем, то игнорируем прежупреждение "Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту."
Копирум подстроку "TOKEN" и вставляем в конфиг.
Параметр vkPublicID — ID группы или пользователя, где небходимо опубликовать пост.
ID группы указывается со знаком минус вначале, ID пользователя без.
Например, для группы rss2post: -88230482
Параметр fromGroup — Пост от имени группы (1) или от имени пользователя (0).
Параметр postTemplate — Полностью настраиваемый шаблон поста.
В переменную $rssItem передаются все поля из RSS-узла
Можно использовать функцию Rss2Post::decodeHtmlEnt для декодирования сущностей навроде & => &
-
Получает список rss-новостей и определяет их актуальность (по записи в логе, в который пишется дата последней добавленной новости).
-
Если есть актуальные, еще не опубликованные новости, то скачивается картинка из новости, заливается в VK, формируется пост по заданному шаблону и к нему прикрепляется картинка.
Если скачать картинку не удалось (например, защита от хотлинка), то публикуется пост без картинки. -
Если пост был успешно добавлен, то в лог записывается дата последней добавленной новости. Если что-то пошло не так, то появляется файл с логом ошибок.
Код писался для себя, далеко не идеален, но сбоев замечено не было и со своей задачей справляется уже продолжительное время. Пример работы: https://vk.com/webdevrss
Успехов!