[mSocial]mSocialVK - постинг в Вконтакте.

Представляю Вашему вниманию результат своего двухнедельного марафона в разработке MODX расширений, а именно постинг из замечательной и горячо любимом CMF MODX REVO во всемирно известную социальную сеть Вконтакте.

Приобрести mSocialVK.
Докуменация mSocialVK.

Возможности
  • Постинг в аккаунт или группу.
  • Постинг вложенных изображений, с размещением их в альбом аккаунта.
  • Постинг от имени группы.
  • Весь функционал mSocial будет доступен и здесь.
Как использовать
  • Устанавливаем mSocial.
  • Устанавливаем mSocialVK.
  • Создаем приложение и получаем бессрочный токен.
  • Добавляем нужные ключи в Системные опции MODX REVO.
  • Настраиваем шаблон в чанке для постинга и активируем TV в тех шаблонов которые должны участвовать в постинге.
  • Отлично, теперь ресурсы автоматически размещаются в Вк при сохранении.
Начиная с версии mSocialVK 1.0.1-alpha, mSocial устанавливается автоматом, если не установлен.

ps: на очереди facebook*.
Павел Карелин
13 февраля 2016, 17:16
modx.pro
8
6 558
+9

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

Роман Садоян
13 февраля 2016, 21:04
1
0
Цена символичная, отличная работа, всё как и обещал!

P.S:
из замечательной и горячо любимой MODX REVO
Хотел сказать CMS?
А то: он — мой Модикс.
    Павел Карелин
    13 февраля 2016, 21:08
    0
    Ну да CMF))). Исправился. Все что обещал надеюсь впереди))
    Владимир Ульяновский
    14 февраля 2016, 18:47
    +1
    Насколько я понял mSocial бесплатен, то почему бы не сделать проверку на установленность зависимости и не ставить ее автоматом?

    Безусловно отличное решение для тех кто работает с соц медиа
    Ruslan Butakov
    01 апреля 2016, 14:28
    0
    Добрый день. Заинтересовал модуль.
    1) Ссылка на документацию в этом посте битая
    2) Будет ли работать данный модуль при добавлении тикетов пользователями сайта через TicketForm?
      Павел Карелин
      01 апреля 2016, 16:13
      0
      1. Поправил.
      2. В принципе да, вам просто нужно немного изменить событие плагина и все (в теории).
      Tanya
      07 декабря 2016, 21:58
      0
      Хотелось бы приобрести компонент, скажите возможно настроить так, чтобы одна новость репостилась сразу в несколько(2-4) группы в ВК(например выбирать в тв_шке в какую)? или только 1 новость — в одну группу?
        Влад
        15 декабря 2016, 15:38
        0
        В общем прикупил потестить да блин асес токен не могу получить чо за фигня, выдает
        {"error":"invalid_client","error_description":"client_id is incorrect"}
          Влад
          15 декабря 2016, 16:02
          0
          Окей ассес токен получил протупил со {}, теперь вообще не пойму, не хочет постить)))
            Влад
            15 декабря 2016, 16:04
            0
            Блин само заработало…
              Павел Карелин
              15 декабря 2016, 22:36
              0
              Так оно само и работает)))
                Влад
                16 декабря 2016, 03:39
                0
                Неподскажешь как сделать интеграцию с тикетс, когда человек опубликовывает новый тикет шел постинг в вк?
                  Павел Карелин
                  16 декабря 2016, 04:56
                  0
                  По сути можно повесить просто в плагине обработчик.
          eflit
          18 декабря 2017, 17:00
          0
          Здравствуйте можете подсказать почему не хочет передавать картинки код чанка
          [[+pagetitle]]
          
          <img src="files/cw89cha6mp4.jpg"/>
          
          Ингредиенты:
          [[+Ingredusers]]
          
          Способ приготовления:
          [[+content]]
            Pavel Zarubin
            13 марта 2018, 19:15
            0
            У кого нибудь оно работает?
            У меня выбрасывает после обновления
            Произошла ошибка при постинге в Vk 8 (Invalid request: v (version) is required)
              Дмитрий
              13 марта 2018, 20:57
              0
              так HybridAuth отвалился же на днях, неудивительно, что и этот модуль тоже упал. Очередное внезапное обновление API VK. В прошлом году я возился с динамическими обложками для групп ВК, так обновление API для работы с фотографиями групп менялось каждые две-три недели. Мы запарились этот модуль переделывать.
                Pavel Zarubin
                13 марта 2018, 21:02
                0
                Так автор вроде совсем недавно обновил модуль, как раз после того, как HybridAuth отвалился
              Павел Карелин
              14 марта 2018, 11:52
              1
              0
              Вышло обновление попробуйте проапдейтится. Теперь у вк версионность обязательный параметр.
              Если не поможет то в файл core/components/msocial/custom/network/vk/vk.class.php в 56 строку добавить
              $param['v'] = '4.0';
              Я утерял исходники пакета, и пока нет времени его переписать.
                Антон Левиц
                Антон Левиц
                20 марта 2018, 18:14
                1
                0
                $param['v'] = '4.0';
                работает, но картинки перестали добавлятся
                kalisto
                01 мая 2018, 17:08
                0
                А как сделать чтобы постинг в вк был с активной ссылкой с поста.
                Ссылка снизу идет под текстом.
                И фото не добавляются.
                Пробовала по-разному.
                [[+pagetitle]]
                [[+content]]
                [[getImageList?
                  &tvname=`foto`
                  &docid=`[[+id]]`
                  &tpl=`@CODE:<img src="[[++site_url]][[+image]]" alt="[[+pagetitle]]">`
                  &limit=`1`
                ]]
                <img src="[[++site_url]][[+image]]" alt="[[+pagetitle]]">
                [[++site_url]][[+uri]]
                  Игорь
                  03 мая 2018, 16:24
                  0
                  Привет! Очень интересуют все Ваши модули. Задача реализовать постинг новостей сайта (новостной сайт регионального масштаба) сразу во все группы. Скажите, можно будет использовать модули (вк, фейсбук, твиттер) одновременно? и будет ли реализована такая же фича в одноклассниках?
                    Юрий
                    12 мая 2018, 10:13
                    1
                    +1
                    Очень прошу автора допились постинг картинок в ВК. Деньги же заплатили а рабочий компонент не получили.
                    Приобрел пакет недавно, сперва не постилось вообще, затем прописал $param['v'] = '4.0'; в vk.class.php и после этого посты начали добавляться, но без картинок.
                      Евгений Корчмарек
                      06 августа 2018, 05:51
                      0
                      Исправленный модуль с постингом картинок vk.class.php:
                      Необходимо в несколько мест добавить версию v=5.0 и album_id={id Альбома}

                      <?php
                      /**
                      * Класс vk для постинга в соответствующую соцсеть.
                      * @copyright Copyright © 2016 devPastet (Pavel Karelin) devpastet@yandex.ru
                      */
                      class vk extends socials
                      {

                      /**
                      * @var array
                      */
                      public $vkKeys;

                      public function __construct(modX & $modx, $setting)
                      {
                      $this->modx = $modx;
                      $this->setting = $setting;

                      $this->vkKeys['owner_id'] = trim($this->modx->getOption('msocial_vk_id'));
                      $this->vkKeys['access_token'] = trim($this->modx->getOption('msocial_vk_at'));
                      $this->vkKeys['from_group'] = trim($this->modx->getOption('msocial_im_fg'));
                      $this->vkKeys['message'] = $this->setting['message'];
                      $this->vkKeys['v'] = '5.0';

                      }

                      /**
                      * Метод для постинга
                      */
                      public function posting()
                      {
                      $param = $this->vkKeys;
                      if(isset($this->setting['attach']) AND $this->modx->getOption('msocial_im_ps') == 1)
                      {
                      $count = 1;
                      foreach($this->setting['attach'] as $file)
                      {
                      if($count <= 4)
                      {
                      if (version_compare(phpversion(), '5.5.0', '<')) {
                      $attrImg['file'.$count] = '@'.MODX_BASE_PATH.$file;
                      }else{
                      $attrImg['file'.$count] = new CURLFile(MODX_BASE_PATH.$file);
                      }
                      }
                      $count++;
                      }
                      $imgList = $this->uploadImg($attrImg);
                      if($imgList){
                      foreach($this->uploadImg($attrImg) as $img){
                      $attachments .= 'photo'.$img->owner_id.'_'.$img->id.',';
                      }
                      $param['attachments'] = substr($attachments, 0, -1);
                      }

                      }

                      $return = $this->request('https://api.vk.com/method/wall.post',$param);

                      /* Вызываем обработчик ошибок */
                      if(isset($return->error)){
                      $errorMsg = $return->error->error_code.' ('.$return->error->error_msg.')';
                      $this->modx->log(modX::LOG_LEVEL_ERROR, $this->modx->lexicon('msocial_error_posting').' Vk '.$errorMsg);
                      }
                      }

                      /**
                      * Загрузка изображений
                      * $file array массив файлов
                      */
                      public function uploadImg($file)
                      {
                      $group_id = $this->vkKeys['owner_id'];
                      $version = $this->vkKeys['v'];
                      $album_id = '{id Альбома}';
                      $access_token = $this->vkKeys['access_token'];
                      if($group_id[0] == '-'){
                      $group_id = substr($group_id, 1);
                      }

                      $server = $this->request('https://api.vk.com/method/photos.getWallUploadServer', array(
                      'group_id' => $group_id,
                      'access_token' => $this->vkKeys['access_token'],
                      'v' => $version,
                      'album_id' => $album_id

                      ));

                      $vkPhoto = $this->request($server->response->upload_url, $file);

                      $result = $this->request('https://api.vk.com/method/photos.saveWallPhoto', array(
                      'group_id' => $group_id,
                      'photo' => $vkPhoto->photo,
                      'server' => $vkPhoto->server,
                      'hash' => $vkPhoto->hash,
                      'access_token' => $this->vkKeys['access_token'],
                      'v' => $version
                      ));


                      return $result->response;

                      }
                      }
                      ?>
                        Михаил
                        06 августа 2018, 06:04
                        0
                        А в тег code не?
                        <?php
                        /**
                        * Класс vk для постинга в соответствующую соцсеть.
                        * @copyright Copyright © 2016 devPastet (Pavel Karelin) devpastet@yandex.ru
                        */
                        class vk extends socials
                        {
                        
                        /**
                        * @var array
                        */
                        public $vkKeys;
                        
                        public function __construct(modX & $modx, $setting) 
                        {
                        $this->modx = $modx;
                        $this->setting = $setting;
                        
                        $this->vkKeys['owner_id'] = trim($this->modx->getOption('msocial_vk_id'));
                        $this->vkKeys['access_token'] = trim($this->modx->getOption('msocial_vk_at')); 
                        $this->vkKeys['from_group'] = trim($this->modx->getOption('msocial_im_fg'));
                        $this->vkKeys['message'] = $this->setting['message']; 
                        $this->vkKeys['v'] = '5.0';
                        
                        }
                        
                        /**
                        * Метод для постинга
                        */
                        public function posting()
                        {
                        $param = $this->vkKeys;
                        if(isset($this->setting['attach']) AND $this->modx->getOption('msocial_im_ps') == 1)
                        {
                        $count = 1;
                        foreach($this->setting['attach'] as $file)
                        {
                        if($count <= 4)
                        {
                        if (version_compare(phpversion(), '5.5.0', '<')) {
                        $attrImg['file'.$count] = '@'.MODX_BASE_PATH.$file;
                        }else{
                        $attrImg['file'.$count] = new CURLFile(MODX_BASE_PATH.$file);
                        }
                        }
                        $count++;
                        }
                        $imgList = $this->uploadImg($attrImg);
                        if($imgList){
                        foreach($this->uploadImg($attrImg) as $img){
                        $attachments .= 'photo'.$img->owner_id.'_'.$img->id.',';
                        }
                        $param['attachments'] = substr($attachments, 0, -1);
                        }
                        
                        }
                        
                        $return = $this->request('https://api.vk.com/method/wall.post',$param);
                        
                        /* Вызываем обработчик ошибок */
                        if(isset($return->error)){
                        $errorMsg = $return->error->error_code.' ('.$return->error->error_msg.')';
                        $this->modx->log(modX::LOG_LEVEL_ERROR, $this->modx->lexicon('msocial_error_posting').' Vk '.$errorMsg);
                        }
                        }
                        
                        /**
                        * Загрузка изображений
                        * $file array массив файлов
                        */
                        public function uploadImg($file)
                        {
                        $group_id = $this->vkKeys['owner_id'];
                        $version = $this->vkKeys['v'];
                        $album_id = '{id Альбома}';
                        $access_token = $this->vkKeys['access_token'];
                        if($group_id[0] == '-'){
                        $group_id = substr($group_id, 1);
                        }
                        
                        $server = $this->request('https://api.vk.com/method/photos.getWallUploadServer', array(
                        'group_id' => $group_id,
                        'access_token' => $this->vkKeys['access_token'],
                        'v' => $version,
                        'album_id' => $album_id
                        
                        ));
                        
                        $vkPhoto = $this->request($server->response->upload_url, $file);
                        
                        $result = $this->request('https://api.vk.com/method/photos.saveWallPhoto', array(
                        'group_id' => $group_id,
                        'photo' => $vkPhoto->photo, 
                        'server' => $vkPhoto->server, 
                        'hash' => $vkPhoto->hash,
                        'access_token' => $this->vkKeys['access_token'],
                        'v' => $version
                        ));
                        
                        
                        return $result->response;
                        
                        }
                        }
                        ?>
                          Евгений Корчмарек
                          06 августа 2018, 11:13
                          0
                          Спасибо за комментарий, не разобрался сразу:

                          Можно тогда еще ссылку на публикацию в пост добавить,
                          Я сделал через ссылку в чанке:
                          <postlink href="[[~[[+id]]? &scheme=`full`]]"/>
                          Специально не брал стандартный Тег «a», так как ссылка должна быть одна — иначе ошибка.

                          Вконтакте пока из этой ссылки картинки не подгружают из og:image, но я в поддержку написал, мб поправят.

                          msocial.class.php
                          <?php
                          /**
                          * Класс mSocial для инициализации и подключение классов постинга в соцсети. Текущий набор соцсетей: Tw.
                          * @copyright  Copyright © 2016 devPastet (Pavel Karelin) devpastet@yandex.ru
                          */
                          
                          set_time_limit(0);
                          
                          class mSocial 
                          {
                          	
                          	/**
                               * @var mixed
                              */
                          	public $setting;
                          	
                          	/**
                               * @var mixed
                              */
                          	public $modx;
                          	
                          	/**
                               * @var string
                              */
                          	public $soc;
                          	
                          	
                          	/*@var object $modx обьект modx */
                          	public function __construct(modX & $modx, $setting) 
                          	{
                          		require_once MODX_CORE_PATH . 'components/msocial/model/msocial/socials.class.php';
                          		$this->modx = $modx;
                          		$this->setting = $setting;
                          		
                          	    foreach($setting['activeSoc'] as $soc)
                          		{
                          			    $this->soc = $soc;
                          				$this->checkSocialAndDock();
                          	    }
                          	}
                          	
                          	/**
                               * Определяем что есть класс соцсети и подключаем его
                               */
                          	public function checkSocialAndDock()
                          	{ 
                          		if (file_exists(MODX_CORE_PATH . 'components/msocial/custom/network/'.$this->soc.'/'.$this->soc.'.class.php')) {
                          			$modx = $this->modx;
                          		    if($modx->loadClass($this->soc, MODX_CORE_PATH . 'components/msocial/custom/network/'.$this->soc.'/', true, true)){
                          		    	$this->getAndParseChunk($this->soc);
                          				$initSocial[$this->soc] = new $this->soc($modx, $this->setting);
                          				if($this->setting['method'] == 'posting'){
                          					$initSocial[$this->soc]->posting();
                          				}
                          			}
                          	    }
                          	}
                          	
                          	/**
                               * Парсим шаблоны соцсетей
                               */
                          	public function getAndParseChunk()
                          	{
                          		$chunkName = trim($this->modx->getOption('msocial_'.$this->soc.'_tp'));
                          		$this->setting['message'] = $this->modx->getChunk($chunkName, $this->setting['allField']);	
                          		$this->modx->getParser()->processElementTags('', $this->setting['message'], true, true, '[[', ']]', array(), 10);
                          		$this->setting['message'] = html_entity_decode($this->setting['message']);
                          		$this->parseAttach();
                          		$this->clearMess();
                          	}
                          	
                          	/**
                               * Чистим сообщение от html
                               */
                          	public function clearMess(){ // 
                          		$this->setting['message'] = strip_tags(trim($this->setting['message']));
                          	}
                          	
                          	/**
                               * Ищем и дергаем файлы для отправки
                               */
                          	public function parseAttach()
                          	{
                          		$this->setting['attach'] = array();
                          	    preg_match_all("/(<img )(.+?)( \/)?(>)/", $this->setting['message'],$images);
                          		foreach ($images[2] as $val)
                          		{
                          		    if (preg_match("/(src=)('|\")(.+?)('|\")/",$val,$matches) == 1)
                          			{
                          
                          				if(file_exists(MODX_BASE_PATH.$matches[3]))
                          				{
                          					$this->setting['attach'][] = $matches[3];
                          				}
                          			}   
                          		}
                          		if (preg_match("/(<postlink )(.+?)( \/)?(>)/", $this->setting['message'],$link_src) == 1)
                          		{
                          		
                          			if (preg_match("/(href=)('|\")(.+?)('|\")/",$link_src[2],$link) == 1)
                          			{
                          				$this->setting['link']=$link[3];
                          
                          			}
                          		
                          		}
                          		
                          	}
                          	
                          }
                          
                          ?>
                          И vk.class.php

                          <?php
                          /**
                          * Класс vk для постинга в соответствующую соцсеть.
                          * @copyright  Copyright © 2016 devPastet (Pavel Karelin) devpastet@yandex.ru
                          */
                          class vk extends socials
                          {
                          	
                          	/**
                               * @var array
                              */
                          	public $vkKeys;
                          	
                          	public function __construct(modX & $modx, $setting) 
                          	{
                          		$this->modx = $modx;
                          		$this->setting = $setting;
                          		
                          		$this->vkKeys['owner_id'] = trim($this->modx->getOption('msocial_vk_id'));
                          		$this->vkKeys['access_token'] = trim($this->modx->getOption('msocial_vk_at'));	
                          		$this->vkKeys['from_group'] = trim($this->modx->getOption('msocial_im_fg'));
                          		$this->vkKeys['message'] = $this->setting['message'];	
                          		$this->vkKeys['v'] = '5.0';
                          		
                          	}
                          	
                          	/**
                               * Метод для постинга
                               */
                          	public function posting()
                          	{
                          		$param = $this->vkKeys;
                          		if(isset($this->setting['attach']) AND $this->modx->getOption('msocial_im_ps') == 1)
                          		{
                          			$count = 1;
                          			foreach($this->setting['attach'] as $file)
                          			{
                          				if($count <= 4)
                          				{
                          					if (version_compare(phpversion(), '5.5.0', '<')) {
                          						$attrImg['file'.$count] = '@'.MODX_BASE_PATH.$file;
                          					}else{
                          						$attrImg['file'.$count] = new CURLFile(MODX_BASE_PATH.$file);
                          					}
                          				}
                          				$count++;
                          			}
                          			$imgList = $this->uploadImg($attrImg);
                          			if($imgList){
                          				foreach($this->uploadImg($attrImg) as $img){
                          					$attachments .= 'photo'.$img->owner_id.'_'.$img->id.',';
                          				}
                          				
                          			}
                          			
                          		}
                          
                          		if(isset($this->setting['link']))
                          		{
                          			if(isset($this->setting['attach']) AND $this->modx->getOption('msocial_im_ps') == 1)
                          			{
                          
                          				$param['attachments'] = $attachments.$this->setting['link'];
                          			}
                          			else 
                          			{
                          				$param['attachments'] = $this->setting['link'];
                          			}
                          		
                          		} else
                          		
                          		{
                          			if(isset($this->setting['attach']) AND $this->modx->getOption('msocial_im_ps') == 1)
                          			{
                          				$param['attachments'] = substr($attachments, 0, -1);
                          			}
                          		}
                          
                          		
                          		$return =  $this->request('https://api.vk.com/method/wall.post',$param);
                          		
                          		/* Вызываем обработчик ошибок */
                          		if(isset($return->error)){
                          			$errorMsg = $return->error->error_code.' ('.$return->error->error_msg.')';
                          			$this->modx->log(modX::LOG_LEVEL_ERROR, $this->modx->lexicon('msocial_error_posting').' Vk '.$errorMsg);
                          		}
                          	}
                          	
                          	/**
                               * Загрузка изображений
                          	 * $file array массив файлов
                               */
                          	public function uploadImg($file)
                          	{
                          		$group_id = $this->vkKeys['owner_id'];
                          		$version = $this->vkKeys['v'];
                          		$album_id = '{ID альбома}';
                          		$access_token = $this->vkKeys['access_token'];
                          		if($group_id[0] == '-'){
                          			$group_id = substr($group_id, 1);
                          		}
                          		
                          		$server = $this->request('https://api.vk.com/method/photos.getWallUploadServer', array(
                          			'group_id' => $group_id,
                          			'access_token' => $this->vkKeys['access_token'],
                          			'v' => $version,
                          			'album_id' => $album_id
                          
                          		));
                          		
                          		$vkPhoto = $this->request($server->response->upload_url, $file);
                          		
                          		$result = $this->request('https://api.vk.com/method/photos.saveWallPhoto', array(
                          			'group_id' => $group_id,
                          			'photo' => $vkPhoto->photo, 
                          			'server' => $vkPhoto->server, 
                          			'hash' => $vkPhoto->hash,
                          			'access_token' => $this->vkKeys['access_token'],
                          			'v' => $version
                          		));
                          		
                          		
                          		return $result->response;
                          		
                          	}
                          }
                          ?>
                            Евгений Корчмарек
                            07 августа 2018, 05:24
                            0
                            Так как сейчас для соц. сетей важно — во сколько вы публикуете пост (и чтобы не ждать этого времени — есть идея реализовать автоматический постинг по расписанию.

                            Для этого создал отдельный TV, в который записывается время последнего поста данного ресурса.
                            Для автоматического постинга проверяется не превышено ли максимальное количество постов в сутки. И берется самый старый ресурс из дочерних опубликованных.

                            Осталось разобраться — как запустить его из cron — мб кто-то подскажет?

                            При запуске вручную — код работает:

                            <?php
                            
                            /*Автоматический постинг в вконтакте. Общие параметры*/
                            $MaxPostsPerDay = 10;
                            $TopParentRes=2;
                            $ChildLevel=2;
                            $SortByFild= 'createdon';
                            
                            /**/
                            
                            $tv_vkPostDate_type = $modx->getObject('modTemplateVar',array('name' =>  'vkPostDate' ));
                            $tv_vkPostDate_id = $tv_vkPostDate_type->get('id');
                            $time_now = time();
                            $time_yesterday = $time_now - 24*60*60;
                            $output='';
                            $PostedId = Array();
                            $Sort_by = Array();
                            
                            
                            $tvs_where = array(
                              'tmplvarid' =>  $tv_vkPostDate_id,
                              'value:>' => $time_yesterday
                            );
                            
                            $tvs_day = $modx->getCollection('modTemplateVarResource', $tvs_where);
                            
                            
                            if (count($tvs_day) < $MaxPostsPerDay) 
                            {
                              $tvs_posted = $modx->getCollection('modTemplateVarResource', array('tmplvarid' =>  $tv_vkPostDate_id));
                              foreach ($tvs_posted as $tv) {
                            	
                                $PostedId[] = $tv->contentid;
                            }
                              
                              $allChildren = $modx->getChildIds($TopParentRes,$ChildLevel,array('context' => 'web'));
                              
                              if(count($allChildren))
                              {
                            	
                            	$where = array(
                            	  'hidemenu' => false,
                            	  'published' => true,
                            	  'deleted' => false,
                            	  'id:IN' => $allChildren,
                            	  'id:NOT IN' => $PostedId
                                );
                              $resources = $modx->getCollection('modResource',$where);
                              
                              
                              foreach ($resources as $k => $res) {
                            	$Sort_by[$k] = $res->get($SortByFild);
                              }
                              
                              $min_value=min($Sort_by);
                              $id = array_search($min_value, $Sort_by); 
                              
                              $resource = $modx->getObject('modResource',$id);
                              
                              if ($modx->loadClass('mSocial', MODX_CORE_PATH . 'components/msocial/model/msocial/', true, true))
                              {
                            	
                                //Получаем лексиконы
                              $modx->lexicon->load('msocial:default');
                              
                              /* Список полей для постинга */
                              $setting['allField'] = $resource->toArray();
                            
                            	$setting['activeSoc'][] = 'vk';
                            	   
                            	    // Определяем метод действий
                                $setting['method'] = 'posting';
                              $mSocial = new mSocial($modx, $setting);
                              
                              
                            }else{
                              $modx->log(modX::LOG_LEVEL_ERROR, "Не удалось подключить класс mSocial в ".MODX_CORE_PATH."/components/msocial/model/");
                              return false;
                            }
                              
                            }
                              
                              
                            } 
                            
                            ?>
                              Здоров Александр
                              07 августа 2018, 06:40
                              0
                              вынести данный код в файл, и его запускать через cron вашего хостинга, можете себе даже сэкономить время и обратится в тех поддержку, настроят правильный пути, а вы только выставите расписание
                                Павел Карелин
                                07 августа 2018, 10:51
                                0
                                +
                                  Евгений Корчмарек
                                  07 августа 2018, 16:22
                                  0
                                  Я попробовал так и сделать — запустить файл из консоли — но ему не хватает объектов мод х

                                  Fatal error: Call to a member function get() on a non-object
                            Павел Карелин
                            07 августа 2018, 10:51
                            0
                            После того как отвалился фейсбук, я принял решение координально переписать модули. Теперь модуль будет основан на нескольких сервисах постинга. И будет включать больше соцсетей. Потому то на данный момент слишком много гемороя делать это напрямую.
                              Михаил
                              07 августа 2018, 15:57
                              0
                              Через SDK соцсетей слишком геморно?
                                Павел Карелин
                                08 августа 2018, 00:59
                                0
                                Постить через sdk в фейсбук не получится теперь, например. Что бы постить в однокласники нужно апрува миллиарда апликух пройти, а в инсту вообще постить нельзя через api. В общем нужна куча мороки что бы все работало и постоянная поддержка решений, что в принципе и реадизуют сервисы. Решение у меня следующее, подключить общую либу с возможностью в будущем подключать дополнительные сервисы. И в пакет добавить несколько самых популярных. Это и удобно и будет работать со всеми соцсетями которые поддерживают сервисы.
                                  Евгений Корчмарек
                                  08 августа 2018, 01:27
                                  0
                                  У сервисом есть неприятная особенность — они рядом с постом добавляют ссылку на себя — и это гипер стремно: реакция у многих на такие посты — негативная;(
                                    Павел Карелин
                                    08 августа 2018, 01:57
                                    0
                                    Такие сервисы мы в расчет брать не будем)
                                    Михаил
                                    08 августа 2018, 06:33
                                    0
                                    ну постинг в Instagram как то просто получилось сделать, а вот в ФБ это какие то семь кругов ада
                                      Павел Карелин
                                      08 августа 2018, 10:19
                                      0
                                      На сколько я помню там вообще не было такого метода. И сейчас нормально постинг в инсту можно реализовать через виртуальное приложение.
                                        Михаил
                                        08 августа 2018, 10:20
                                        0
                                        Но вот с другими соцсетями вообще весело. Хотя странно, почему бы не упростить это
                                  Евгений Корчмарек
                                  07 августа 2018, 16:24
                                  0
                                  Я как раз хотел добить вк и купить модуль fb — нет смысла покупать? не работает?
                                    Павел Карелин
                                    08 августа 2018, 01:00
                                    0
                                    Пока его купить нельзя, я еще думаю о том как организовать архитектуру дополнения, где будут все соцсети. В будущем текущие модули mSocial будут заменены на более практичное решение.
                                  Ксения
                                  17 сентября 2018, 17:01
                                  0
                                  А не планируется функционал ротации постов в группе вк? Почти все посты пошли по второму (а то и третьему кругу) надоело руками их перепащивать копировать.
                                    Павел Карелин
                                    17 сентября 2018, 17:43
                                    +1
                                    В разработке новое дополнение, я добавил в заметки реализацию такого функционала.
                                      Серый
                                      31 октября 2018, 23:43
                                      0
                                      Это очень круто! Я обязательно куплю это дополнение!))
                                      Еще бы всасывать имеющиеся посты в CMS и потом крутить их по кругу с заданным интервалом, например, что б не чаще чем раз в год повторение случалось. А некоторым постам выставить дату ежегодного постинга, или там каждый год, последнее воскресенье июля. Уиииии!!! Такой фрегатик будет!))))
                                    Никита Серов
                                    05 февраля 2019, 17:41
                                    1
                                    0
                                    Добрый день, всем!
                                    Купил компонент, настроил, все учел, что выше описано, версию добавил, 5.92, id альбома прописал.
                                    Пост формируется, но нет картинок.
                                    Что делать?
                                      iWatchYouFromAfar
                                      06 февраля 2019, 12:23
                                      0
                                      Почитать комментарии, там дан ответ и готовое решение. Сделал все как написано выше, у меня все завелось, картинки добавляются в конец поста в vk.
                                        Никита Серов
                                        06 февраля 2019, 12:26
                                        0
                                        Обожаю такие умные ответы! Ждал именно Вашего!

                                        Я прочитал, все сделал, прописал и album_id и version. Толку нет. Не работает.
                                        Точнее работает, пост появляется, НО картинок нет.
                                        Может быть я как-то не так картинку подставляю. Но пробовал и как написано в инструкции и полный путь указывать, не хочет работать.

                                        Пришлите код Ваш, хотя бы чтобы было понятно большее, чем «почитать комментарии».
                                        Как написано тут — делал:
                                        modx.pro/solutions/7882#comment-100380
                                          iWatchYouFromAfar
                                          06 февраля 2019, 12:39
                                          0
                                          Ну для начала, я как и вы столкнулся с такой же проблемой и в поисках её решения наткнулся на эту тему, прочитал комментарии и с помощью добрых людей, которые тут оставили ГОТОВОЕ решение, проблему устранил.

                                          Далее. Вы написали что сделали все как указано выше и у вас не работает, я же написал, что АНАЛОГИЧНОЕ решение выше, у меня работает, проверил вот буквально 2 минуты назад. Вы бы спасибо сказали, вместо того что писать про то, как вы ждали умного ответа. Еще раз — по коду выше, у меня все работает, странно да? Видимо я код копирую как-то иначе, нежели вы.

                                          Откуда я знаю что и как вы подставляете? У меня картинки собираются из тела письма, вот мой чанк.

                                          [[+pagetitle]]
                                          [[+content]]
                                          Мой код абсолютно идентичен коду выше.
                                            Никита Серов
                                            06 февраля 2019, 12:49
                                            0
                                            Ваш комментарий изначально мне не понравился.
                                            «Почитать комментарии, там дан ответ и готовое решение.» Предлагать перечитать все комментарии заново — это дельный совет, спасибо!
                                            Код чанка, что Вы прислали — нечем не поможет.
                                            Я думаю, что либо код vk.class.php пришлете, либо код content пришлете. Ибо я понимаю, что все работает, кроме картинок, но чтобы работали картинки — я для этого все перечисленное выше сделал.
                                            Что еще мне надо сделать — не понимаю. Пробовал уже
                                            <img src="что-то">
                                            прописывать — не работает…
                                              iWatchYouFromAfar
                                              06 февраля 2019, 13:19
                                              0
                                              Если у меня все работает, а у вас нет, значит это магия и мой сайт подпирается рогом волшебного единорога, да?

                                              Еще раз и последний.

                                              vk.class.php — аналогичен коду выше, только ID альбома другой.
                                              Код content — Что? У меня он меняется из статьи к статье, какой код контента, вы о чем?

                                              Вы общаетесь с претензией на то, что я вам должен. Я же хотел лишь помочь, сказал что код выше — рабочий.

                                              Делайте в разделе работа предложение решить вашу проблему, я с вами свяжусь и на платной основе помогу. Ну или можете написать мне на почту через личные сообщения на этом сайте.
                                                Никита Серов
                                                06 февраля 2019, 13:22
                                                0
                                                Если у меня все работает, а у вас нет, значит это магия и мой сайт подпирается рогом волшебного единорога, да?
                                                Я думаю, что, что-то не так у меня, вопрос, что именно?
                                                Мой чанк tpl.msocial.vk:
                                                {$_modx->resource.pagetitle}
                                                {$_modx->resource.content}
                                                {var $gallery = $_modx->resource.gallery | fromJSON}
                                                {foreach $gallery as $galItem}
                                                    <img src="{$galItem.img}">
                                                {/foreach}
                                                Мой код vk.class.php:
                                                <?php
                                                	/**
                                                		* Класс vk для постинга в соответствующую соцсеть.
                                                		* @copyright Copyright © 2016 devPastet (Pavel Karelin) devpastet@yandex.ru
                                                	*/
                                                	class vk extends socials
                                                	{
                                                		/**
                                                			* @var array
                                                		*/
                                                		public $vkKeys;
                                                		public function __construct(modX & $modx, $setting) 
                                                		{
                                                			$this->modx = $modx;
                                                			$this->setting = $setting;
                                                			$this->vkKeys['owner_id'] = trim($this->modx->getOption('msocial_vk_id'));
                                                			$this->vkKeys['access_token'] = trim($this->modx->getOption('msocial_vk_at')); 
                                                			$this->vkKeys['from_group'] = trim($this->modx->getOption('msocial_im_fg'));
                                                			$this->vkKeys['message'] = $this->setting['message']; 
                                                			$this->vkKeys['v'] = '5.0';
                                                		}
                                                		/**
                                                			* Метод для постинга
                                                		*/
                                                		public function posting()
                                                		{
                                                			$param = $this->vkKeys;
                                                			if(isset($this->setting['attach']) AND $this->modx->getOption('msocial_im_ps') == 1)
                                                			{
                                                				$count = 1;
                                                				foreach($this->setting['attach'] as $file)
                                                				{
                                                					if($count <= 4)
                                                					{
                                                						if (version_compare(phpversion(), '5.5.0', '<')) {
                                                							$attrImg['file'.$count] = '@'.MODX_BASE_PATH.$file;
                                                							}else{
                                                							$attrImg['file'.$count] = new CURLFile(MODX_BASE_PATH.$file);
                                                						}
                                                					}
                                                					$count++;
                                                				}
                                                				$imgList = $this->uploadImg($attrImg);
                                                				if($imgList){
                                                					foreach($this->uploadImg($attrImg) as $img){
                                                						$attachments .= 'photo'.$img->owner_id.'_'.$img->id.',';
                                                					}
                                                					$param['attachments'] = substr($attachments, 0, -1);
                                                				}
                                                			}
                                                			$return = $this->request('https://api.vk.com/method/wall.post',$param);
                                                			/* Вызываем обработчик ошибок */
                                                			if(isset($return->error)){
                                                				$errorMsg = $return->error->error_code.' ('.$return->error->error_msg.')';
                                                				$this->modx->log(modX::LOG_LEVEL_ERROR, $this->modx->lexicon('msocial_error_posting').' Vk '.$errorMsg);
                                                			}
                                                		}
                                                		/**
                                                			* Загрузка изображений
                                                			* $file array массив файлов
                                                		*/
                                                		public function uploadImg($file)
                                                		{
                                                			$group_id = $this->vkKeys['owner_id'];
                                                			$version = $this->vkKeys['v'];
                                                			$album_id = '259041743';
                                                			$access_token = $this->vkKeys['access_token'];
                                                			if($group_id[0] == '-'){
                                                				$group_id = substr($group_id, 1);
                                                			}
                                                			$server = $this->request('https://api.vk.com/method/photos.getWallUploadServer', array(
                                                			'group_id' => $group_id,
                                                			'access_token' => $this->vkKeys['access_token'],
                                                			'v' => $version,
                                                			'album_id' => $album_id
                                                			));
                                                			$vkPhoto = $this->request($server->response->upload_url, $file);
                                                			$result = $this->request('https://api.vk.com/method/photos.saveWallPhoto', array(
                                                			'group_id' => $group_id,
                                                			'photo' => $vkPhoto->photo, 
                                                			'server' => $vkPhoto->server, 
                                                			'hash' => $vkPhoto->hash,
                                                			'access_token' => $this->vkKeys['access_token'],
                                                			'v' => $version
                                                			));
                                                			return $result->response;
                                                		}
                                                	}
                                                ?>
                                                  Никита Серов
                                                  06 февраля 2019, 13:47
                                                  0
                                                  Интересный Вы человек.
                                                  «Если у меня все работает, а у вас нет, значит это магия и мой сайт подпирается рогом волшебного единорога, да?»
                                                  Делать из меня дурака — тоже не нужно. Предлагать за деньги разобраться — не интересно. За деньги, за сколько? Компонент стоил мне 190 рублей, за 50 рублей возьметесь разбираться? А если не разберетесь — ничего не получите, готовы рискнуть?

                                                  Уверен, что скорее всего проблема не сложная, просто я ее упускаю из вида. Если кто-то может помочь советом, буду благодарен, кроме советов почитать все еще раз и обратиться за платной помощью.
                                                    iWatchYouFromAfar
                                                    06 февраля 2019, 13:59
                                                    -1
                                                    Мне не интересно помогать вам бесплатно, к тому же за 50 рублей, к тому же с таким отношением будто я вам должен.

                                                    Раз купили компонент — у вас есть годовая техподдержка от автора.
                                                      Никита Серов
                                                      06 февраля 2019, 14:09
                                                      0
                                                      )))) Интересно на какую суммы Вы рассчитываете? Никто конечно не собирается к Вам обращаться, но все же)))

                                                      Просто мне очень не нравятся люди, которые начинают умничать, что «я сделал точно так же и у меня все работает» и какой вывод должны остальные сделать? Что Вы крутой мега спец? Что все остальные — никто и можно на них заработать? Нет, уважаемый, вы не угадали ни одной буквы!
                                                      По поводу «будто я вам должен.». Вы начали отвечать мне, но Ваш ответ был -ни о чем. Либо отвечайте, либо вообще не пишите. Если у меня были соображения по поводу моих ошибок, я их указал. А писать, то о что уже было сделано мною и я об этом указал в сообщении — это просто пустозвонство. Вы — ничем не помогли, а еще спасибо просите.

                                                      В последнее время люди конечно начали совсем наглеть. Вы чистый тому пример. Вы, конечно же, ничего не должны. Но позиция Ваша. Я сделал, я знаю, я платно сделаю — это плохая позиция. Не по душе она мне. Я сам могу помочь, если что-то знаю и все еще, наивно, конечно, жду такого же от других. Ну а в ответ — всегда, почти, только наглость.
                                                        iWatchYouFromAfar
                                                        06 февраля 2019, 14:13
                                                        +1
                                                        Извините меня за мою наглость, всего Вам наилучшего.
                                        Никита Серов
                                        06 февраля 2019, 14:32
                                        0
                                        Кто подскажет, где у меня ошибка, почему фотографии не постятся?
                                        Мой чанк tpl.msocial.vk:
                                        {$_modx->resource.pagetitle}
                                        {$_modx->resource.content}
                                        {var $gallery = $_modx->resource.gallery | fromJSON}
                                        {foreach $gallery as $galItem}
                                            <img src="{$galItem.img}">
                                        {/foreach}
                                        Мой код vk.class.php:
                                        <?php
                                        	/**
                                        		* Класс vk для постинга в соответствующую соцсеть.
                                        		* @copyright Copyright © 2016 devPastet (Pavel Karelin) devpastet@yandex.ru
                                        	*/
                                        	class vk extends socials
                                        	{
                                        		/**
                                        			* @var array
                                        		*/
                                        		public $vkKeys;
                                        		public function __construct(modX & $modx, $setting) 
                                        		{
                                        			$this->modx = $modx;
                                        			$this->setting = $setting;
                                        			$this->vkKeys['owner_id'] = trim($this->modx->getOption('msocial_vk_id'));
                                        			$this->vkKeys['access_token'] = trim($this->modx->getOption('msocial_vk_at')); 
                                        			$this->vkKeys['from_group'] = trim($this->modx->getOption('msocial_im_fg'));
                                        			$this->vkKeys['message'] = $this->setting['message']; 
                                        			$this->vkKeys['v'] = '5.0';
                                        		}
                                        		/**
                                        			* Метод для постинга
                                        		*/
                                        		public function posting()
                                        		{
                                        			$param = $this->vkKeys;
                                        			if(isset($this->setting['attach']) AND $this->modx->getOption('msocial_im_ps') == 1)
                                        			{
                                        				$count = 1;
                                        				foreach($this->setting['attach'] as $file)
                                        				{
                                        					if($count <= 4)
                                        					{
                                        						if (version_compare(phpversion(), '5.5.0', '<')) {
                                        							$attrImg['file'.$count] = '@'.MODX_BASE_PATH.$file;
                                        							}else{
                                        							$attrImg['file'.$count] = new CURLFile(MODX_BASE_PATH.$file);
                                        						}
                                        					}
                                        					$count++;
                                        				}
                                        				$imgList = $this->uploadImg($attrImg);
                                        				if($imgList){
                                        					foreach($this->uploadImg($attrImg) as $img){
                                        						$attachments .= 'photo'.$img->owner_id.'_'.$img->id.',';
                                        					}
                                        					$param['attachments'] = substr($attachments, 0, -1);
                                        				}
                                        			}
                                        			$return = $this->request('https://api.vk.com/method/wall.post',$param);
                                        			/* Вызываем обработчик ошибок */
                                        			if(isset($return->error)){
                                        				$errorMsg = $return->error->error_code.' ('.$return->error->error_msg.')';
                                        				$this->modx->log(modX::LOG_LEVEL_ERROR, $this->modx->lexicon('msocial_error_posting').' Vk '.$errorMsg);
                                        			}
                                        		}
                                        		/**
                                        			* Загрузка изображений
                                        			* $file array массив файлов
                                        		*/
                                        		public function uploadImg($file)
                                        		{
                                        			$group_id = $this->vkKeys['owner_id'];
                                        			$version = $this->vkKeys['v'];
                                        			$album_id = '259041743';
                                        			$access_token = $this->vkKeys['access_token'];
                                        			if($group_id[0] == '-'){
                                        				$group_id = substr($group_id, 1);
                                        			}
                                        			$server = $this->request('https://api.vk.com/method/photos.getWallUploadServer', array(
                                        			'group_id' => $group_id,
                                        			'access_token' => $this->vkKeys['access_token'],
                                        			'v' => $version,
                                        			'album_id' => $album_id
                                        			));
                                        			$vkPhoto = $this->request($server->response->upload_url, $file);
                                        			$result = $this->request('https://api.vk.com/method/photos.saveWallPhoto', array(
                                        			'group_id' => $group_id,
                                        			'photo' => $vkPhoto->photo, 
                                        			'server' => $vkPhoto->server, 
                                        			'hash' => $vkPhoto->hash,
                                        			'access_token' => $this->vkKeys['access_token'],
                                        			'v' => $version
                                        			));
                                        			return $result->response;
                                        		}
                                        	}
                                        ?>
                                          Павел Лукьянов
                                          22 апреля 2019, 09:59
                                          0
                                          Привет, удалось решить проблему с постингом фотографий?
                                            Ярослав
                                            22 апреля 2019, 10:37
                                            0
                                            Да
                                              Павел Лукьянов
                                              22 апреля 2019, 10:38
                                              0
                                              Круто! а можешь подсказать как?
                                                Павел Карелин
                                                22 апреля 2019, 13:57
                                                0
                                                $this->vkKeys['v'] = "5.0";
                                                сюда: vk.class.php
                                                  Павел Лукьянов
                                                  22 апреля 2019, 14:08
                                                  0
                                                  Делал я так, класс такой же что и выше в посте

                                                  [[+pagetitle]] 
                                                  [[+content]] 
                                                  <img src="[[+img]]" alt="[[+pagetitle]]">


                                                  <?php
                                                  	/**
                                                  		* Класс vk для постинга в соответствующую соцсеть.
                                                  		* @copyright Copyright © 2016 devPastet (Pavel Karelin) devpastet@yandex.ru
                                                  	*/
                                                  	class vk extends socials
                                                  	{
                                                  		/**
                                                  			* @var array
                                                  		*/
                                                  		public $vkKeys;
                                                  		public function __construct(modX & $modx, $setting) 
                                                  		{
                                                  			$this->modx = $modx;
                                                  			$this->setting = $setting;
                                                  			$this->vkKeys['owner_id'] = trim($this->modx->getOption('msocial_vk_id'));
                                                  			$this->vkKeys['access_token'] = trim($this->modx->getOption('msocial_vk_at')); 
                                                  			$this->vkKeys['from_group'] = trim($this->modx->getOption('msocial_im_fg'));
                                                  			$this->vkKeys['message'] = $this->setting['message']; 
                                                  			$this->vkKeys['v'] = '5.0';
                                                  		}
                                                  		/**
                                                  			* Метод для постинга
                                                  		*/
                                                  		public function posting()
                                                  		{
                                                  			$param = $this->vkKeys;
                                                  			if(isset($this->setting['attach']) AND $this->modx->getOption('msocial_im_ps') == 1)
                                                  			{
                                                  				$count = 1;
                                                  				foreach($this->setting['attach'] as $file)
                                                  				{
                                                  					if($count <= 4)
                                                  					{
                                                  						if (version_compare(phpversion(), '5.5.0', '<')) {
                                                  							$attrImg['file'.$count] = '@'.MODX_BASE_PATH.$file;
                                                  							}else{
                                                  							$attrImg['file'.$count] = new CURLFile(MODX_BASE_PATH.$file);
                                                  						}
                                                  					}
                                                  					$count++;
                                                  				}
                                                  				$imgList = $this->uploadImg($attrImg);
                                                  				if($imgList){
                                                  					foreach($this->uploadImg($attrImg) as $img){
                                                  						$attachments .= 'photo'.$img->owner_id.'_'.$img->id.',';
                                                  					}
                                                  					$param['attachments'] = substr($attachments, 0, -1);
                                                  				}
                                                  			}
                                                  			$return = $this->request('https://api.vk.com/method/wall.post',$param);
                                                  			/* Вызываем обработчик ошибок */
                                                  			if(isset($return->error)){
                                                  				$errorMsg = $return->error->error_code.' ('.$return->error->error_msg.')';
                                                  				$this->modx->log(modX::LOG_LEVEL_ERROR, $this->modx->lexicon('msocial_error_posting').' Vk '.$errorMsg);
                                                  			}
                                                  		}
                                                  		/**
                                                  			* Загрузка изображений
                                                  			* $file array массив файлов
                                                  		*/
                                                  		public function uploadImg($file)
                                                  		{
                                                  			$group_id = $this->vkKeys['owner_id'];
                                                  			$version = $this->vkKeys['v'];
                                                  			$album_id = '217978767';
                                                  			$access_token = $this->vkKeys['access_token'];
                                                  			if($group_id[0] == '-'){
                                                  				$group_id = substr($group_id, 1);
                                                  			}
                                                  			$server = $this->request('https://api.vk.com/method/photos.getWallUploadServer', array(
                                                  			'group_id' => $group_id,
                                                  			'access_token' => $this->vkKeys['access_token'],
                                                  			'v' => $version,
                                                  			'album_id' => $album_id
                                                  			));
                                                  			$vkPhoto = $this->request($server->response->upload_url, $file);
                                                  			$result = $this->request('https://api.vk.com/method/photos.saveWallPhoto', array(
                                                  			'group_id' => $group_id,
                                                  			'photo' => $vkPhoto->photo, 
                                                  			'server' => $vkPhoto->server, 
                                                  			'hash' => $vkPhoto->hash,
                                                  			'access_token' => $this->vkKeys['access_token'],
                                                  			'v' => $version
                                                  			));
                                                  			return $result->response;
                                                  		}
                                                  	}
                                                  ?>
                                                    Ярослав
                                                    22 апреля 2019, 15:47
                                                    0
                                                    <img src="[[+img]]" alt="[[+pagetitle]]">
                                                    — это TV?
                                                      Ярослав
                                                      22 апреля 2019, 15:56
                                                      0
                                                      В коде вывода картинки наверное проблема. Я только вставил
                                                      $this->vkKeys['v'] = "5.0";
                                                      сюда: vk.class.php и все. код той версии что устанавливается сейчас правильный.
                                                      Как вызвать картинку? Я делал так у меня картинки из ms2Gallery.
                                                      [[+pagetitle]] 
                                                      [[+content]]
                                                      <postlink href="[[~[[+id]]? &scheme=`full`]]"/>
                                                      [[!ms2Gallery?
                                                            &tpl=`tpl.ms2GalleryObject`
                                                            &frontend_css=``
                                                            &frontend_js=``
                                                      ]]
                                                      а шаблон — tpl.ms2GalleryObject

                                                      {if count($files) > 1}
                                                              {foreach $files as $file}
                                                            <img src="{$file['url']}">
                                                              {/foreach}
                                                      {elseif count($files) == 1}
                                                         <img src="{$file[0]['url']}">
                                                      {else}
                                                          <p>Нет фото</p>
                                                      {/if}
                                            Dmitry St.
                                            25 ноября 2019, 11:22
                                            0
                                            Привет, при постинге новости в ВК затираются все внешние ссылки из текста, возможно ли это как то исправить?
                                              Роман
                                              11 марта 2022, 21:06
                                              0
                                              Добрый день. На дворе 2022 год. Модуль работает у кого то? Я поставил, с учетом всех изменений в классе vk. Но ничего не происходит. Посты не публикуются.
                                                Роман
                                                11 марта 2022, 22:13
                                                0
                                                Отвечу самому себе. Постинг работает, надо только прописать актуальную версию. Сейчас это 5.131.
                                                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                69