mSocial2 постинг в соцсети из RSS ленты.

Новый mSocial2 по сути это редактор RSS ленты который позволяет создавать задачи на определенное время для постинга в соцсети с помощью сторонних сервисов.

Что может:
  • Постинг фактически в любую социальную сеть c использование сторонних сервисов.
  • Отложенный постинг.
  • Прикрепление изображений к постам.
  • Постинг по шаблону.
  • Добавление, удаление задач на постинг.
Как выглядит компонент:


Системные настройки
  • msocial2_link_file — путь до файла где хранится лента, по умолчанию: {base_path}mSocial2.xml
  • msocial2_rss_title — название rss ленты.
  • msocial2_rss_description — описание rss ленты.
  • msocial2_title — поле документа из которого берется заголовок поста.
Как это все работает:
  • Настраиваем чанк под себя, с полями которые будем использовать для постинга.
  • Меняем системные настройки компонента если, как минимум название ленты и описание.
  • Выбираем сервис, регистрируемся, логинимся, привязываем там свои аккаунты социальных сетей, ставим ссылочку на нашу rss ленту.
  • Переходим в компонент mSocial2 и создаем задачи на нужное время, для нужных документов, указываем id ресурса, выбираем дату и добавляем пост в задачи.
  • Чистим старые задачи если нужно. Если нужно можно поставить для этого CRON на коннектор чтобы старые задачи чистились автоматически.
  • Дожидаемся успешного постинга в соцсети.
Идея использования сторонних сервисов

Плюсы:
  • Умер один сервис или что то у него пошло не так, перешли на другой, mSocial2 по барабану с каким сервисом работать.
  • Все соцсети здесь и сейчас, если бы я делал еще одноклассников, переделывал facebook, то скорей всего вы бы выхода так и не дождались.
  • Подключиться к сервису гораздо проще чем генерировать кучи ключей держать их в актуальном состоянии и т.д. Функционал для коннекта к соцсети в сервисах есть как правило готовый, и подключить аккаунт того же вк очень и очень просто.
  • Отложенный постинг без гемороя.
Минусы:
  • Дополнительные затраты на оплату аккаунта с сервисе постинга.
  • Нужно немного разобраться в том как подключить ленту RSS и зарегистрироваться.
  • Рразделить шаблоны для разных соцсетей не получится.
Сервисы на которых тестировал:
seolit.ru/
amplifr.com/

Сервисы где тоже должно работать:
novapress.com
publbox.com/rss
pur.ninja/
megapo.st/

Для постинга реализован отдельный класс который можно вызывать из других мест и это очень удобно(понятно что это тривиально):
// Только убедитесь что $modx подключен
include_once(MODX_CORE_PATH.'components/msocial2/model/msocial2.class.php');
$mSocial = new mSocial2($modx);

// Добавляем запись в Rss массив имеет больше параметров, id является обязательным
 $msocial2->addItem();

// Удаляем определенные записи по массиву guid
 $msocial2->removeItems();

// Удаляем старые записи из rss, по умолчанию будет считать записи добавленные 6 минут назад старыми
 $msocial2->removeOld();
Технически любой сервис постинга если он имеет возможность импорта из RSS должен работать с лентой.

Компонент стоит 690 рублей, но все кто спрашивал о скидке при переходе вам привет. До 13 декабря будет действовать скидка 30% по промокоду msocial2_sale. Если кто то не успеет из тех кто купил ранее mSocialVK или mSocialFB обращайтесь сделаем для Вас скидку.

ps: Шерстил старые записи и нашел интересную штуку ротации постов, можем сделать. Еще интересует вопрос нужен ли постинг при сохранении ресурса?

pss: Это минимально жизнеспособный продукт, сделан на чистом энтузиазме (но он уже перекрывает возможности оригинального компонента), так что определенный функционал еще планирую навешать. Предложения и рекомендации приветствуются, в общем включаем свою буйную фантазию и генерим идеи.
Павел Карелин
06 декабря 2018, 14:02
2
419
+6

Комментарии: 5

АндрейЧ
13 декабря 2018, 23:15
0
Павел, добрый день. У меня вопрос, а может оно самостоятельно отложенный постинг делать?
Я имею ввиду — указал категорию товаров — и пусть оно постит по 1 шт в неделю например по все соц. сети.
Есть ли способ так автоматизировать постинг? это нужно… чтобы не делать ничего, а посты появлялись.
    Павел Карелин
    14 декабря 2018, 01:03
    +1
    В базовом функционале нет. Но по сути там работы на два-три часа. И задача в крон. Все остальное для постинга имеется. Если нужно я могу прикрутить, но это будет поcле нового года.
      АндрейЧ
      15 декабря 2018, 01:06
      0
      Хорошо бы. Сделайте после НГ если будете развивать плаг… мне точно авто-пост нужен чтоб SMM контентщика заменить. Пусть плагин дороже будет, но автоматически постит… текст+фото из ТВ превью +ссылка на товар/ресурс, чтобы указал корневой каталог и сказал постить по 1 шт в сутки… и забыл на год.

      … Лишь бы хостер не подвел, крон работает на сервере, но крон из настроек плагине импорта не запускается, т.к.
      У нас запрещена функция exec() скрипт который её использует на хостинге работать не будет.
      Только на VDS.
      АндрейЧ
      17 апреля 2019, 15:15
      0
      Кто поможет с этой задачей, + настройка в телеграм?

      В базовом функционале нет. Но по сути там работы на два-три часа. И задача в крон. Все остальное для постинга имеется. Если нужно я могу прикрутить, но это будет поcле нового года.
Владимир
10 марта 2019, 14:09
0
Сейчас у меня передает в RSS только основной контент статьи через тег .
Я хочу передавать еще и картинку прикрепленную к статье как TV-поле «tv.image» и выводить его в ленту как . (В сервисе seolit к которому я подключился написано, что правильным будет использовать для передачи картинки в RSS).
Вот часть кода плагина
if(empty($data['description'])){
                $tv_query = $this->modx->newQuery('modTemplateVarResource');
                $tv_query->leftJoin('modTemplateVar','modTemplateVar',array("modTemplateVar.id = tmplvarid"));
                $tv_query->where(array('contentid'=> $data['id']));
                $tv_query->select($this->modx->getSelectColumns('modTemplateVarResource','modTemplateVarResource','',array('id','tmplvarid','contentid','value')));
                $tv_query->select($this->modx->getSelectColumns('modTemplateVar','modTemplateVar','',array('name')));
                $tvars = $this->modx->getCollection('modTemplateVarResource',$tv_query);
                foreach ($tvars as $tvar) {
                    $tvar = $tvar->toArray();
                    if (!empty($tvar['value']))
                        $resourceFileds[$tvar['name']] = $tvar['value'];
                }
                $data['description'] = $this->getAndParseChunk($resourceFileds);
            }
			

            $sxml= simplexml_load_file($this->fileLink);
            $item = $sxml->channel->addChild('item');
            $item->addChild('title', $data['title']);
            $item->addChild('link', $this->modx->makeUrl($data['id'],'','', $this->modx->getOption('server_protocol')));
            $item->addChild('description', $data['description']);
            $item->addChild('guid', time().'-'.$data['id']);
            $item->addChild('pubDate', date('D, d M Y H:i:s T', $data['pubDate']));
когда добавляю сюда
$item->addChild('enclosure', $tvar['value']);
выводит одно из TV-полей, но не то, которое нужно мне.
А мне нужно вывести поле tv.image.
Как его вывести?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.