Плагин "Публикация постов в соцсети" (vk.com - Вконтакте)



Данный плагин позволяет публиковать посты в группу вконтакте от имени группы. При публикации используется короткое описание до ката, добавляется главная картинка фотосета или первая картинка в топике и ссылка на прочтение полного текста топика.

Установка
1. Создайте приложение Вконтакте (тип: Standalone-приложение).
2. Внесите в настройки плагина (/plugins/postingingroups/config/config.php) параметр $config['vk']['app_id'] — ID приложения из вкладки настройки.
3. Создайте группу или публичную страницу Вконтакте.
4. Внесите в настройки плагина параметр $config['vk']['group_id'].
5. В настройках приложения выберите созданную группу.
6. Активируйте плагин.
7. Перейдите в настройки плагина (/postingingroups/admin/) и получите access_token.
8. Следуя инструкциям внесите в настройки плагина параметр $config['vk']['access_token'].
9. Теперь Администраторы могут публиковать топики в группу.

P.S. Обратите внимание, что при каждом добавлении/редактировании топика, если стоит галка опубликовать, то в группе создастся новый пост. Чтобы избежать дублей, форма задаст соответсвующий вопрос.

76 комментариев

avatar
Отлично, очень вовремя.

Обратите внимание, что при каждом добавлении/редактировании топика, если стоит галка опубликовать, то в группе создастся новый пост.
Для чего это может быть нужно, в особенности, при многократном редактировании? Думаю, это может создать массу неудобств.
avatar
Возможно не совсем понятно описал функционал.

Чтобы опубликовать пост в группу нужно поставить галку «Опубликовать в группу VK». По умолчанию чекбокс снят, а значит репостинга не произойдет.
avatar
Это-то как раз понятно. Если галка уже стояла, а я(как админ) полез еще раз редактировать топик и оставил галку — заново создается в группе пост и будут дубли? Из текущей формулировки в топике именно так и получается.
avatar
Дописал
При открытии формы добавления/редактирования топика чекбокс публикации в группу всегда снят.
Т.е. чтобы повторно опубликовать нужно еще раз будет поставить галку, т.к. она не сохраняется.
avatar
Может, лучше ее сохранять (например к экстра-данные топика), и при редактировании выводить, что топик уже был отправлен в группу?
avatar
Хорошо реализую.
avatar
Сделал.
avatar
Купил. Сейчас буду проверять )
avatar
Туплю наверное… Где создать приложение вконтакте?
avatar
разобрался, очень глубоко зарыли — vk.com/dev
avatar
Запустил. При публикации топика получил ошибку.

Warning: file_get_contents(https://api.vk.com/method/wall.post?owner_id=-********&attachment=photo*******_********&message=%D0%92%D0%BE%D1%81%D0%BA%D1%80%D0%B5%D1%81%D0%BD%D0%B5%D1%82+%D0%BB%D0%B8+%D0%BA%D0%B8%D0%BD%D0%BE%D1%82%D0%B5%D0%B0%D1%82%D1%80+%D0%B2+%D0%BF%D0%B0%D1%80%D0%BA%D0%B5+%D0%9F%D0%BE%D0%B1%D0%B5%D0%B4%D0%B0%3F%0A%0D%0A%0D%0A%D0%9D%D0%B5+%D0%BC%D0%BD%D0%BE%D0%B3%D0%B8%D0%B5+%D0%B6%D0%B8%D1%82%D0%B5%D0%BB%D0%B8+%D0%92%D0%BE%D0%BB%D0%B3%D0%BE%D0%B4%D0%BE%D0%BD%D1%81%D0%BA%D0%B0+%D0%B7%D0%BD%D0%B0%D1%8E%D1%82+%D0%BE+%D1%82%D0%BE%D0%BC%2C+%D1%87%D1%82%D0%BE+%D1%83+%D0%BD%D0%B0%D1%81+%D0%B2+%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%B5+%D0%B8%D0%BC%D0%B5%D0%B5%D1%82%D1%81%D1%8F+%D1%81%D1%82%D0%B0%D1%80%D1%8B%D0%B9+%D0%BA%D0%B8%D0%BD%D0%BE%D1%82%D0%B5%D0%B0%D1%82%D1%80+%D0%B2%D0%BE%D0%B7%D0%BB%D0%B5+%D0%BF%D0%B0%D1%80%D0%BA%D0%B0+%C2%AB%D0%9F%D0%BE%D0%B1%D0%B5%D0%B4%D0%B0%C2%BB.+%D0%98+%D0%BD%D0%B5+%D1%83%D0%B4%D0%B8%D0%B2%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%2C+%D0%B2%D0%B5%D0%B4%D1%8C+%D0%BE%D0%BD+% in /plugins/postingingroups/classes/modules/vk/Vk.class.php on line 86

Warning: Cannot modify header information - headers already sent by (output started at /plugins/postingingroups/classes/modules/vk/Vk.class.php:86) in /engine/include/function.php on line 234

Warning: Cannot modify header information - headers already sent by (output started at /plugins/postingingroups/classes/modules/vk/Vk.class.php:86) in /engine/include/function.php on line 235
avatar
скиньте настройки php
avatar
Какие настройки? Где их взять? У меня виртуальный сервер, его настраивал хостер
avatar
Ошибку поправил. Плагин отправлен на модерацию.
avatar
Поставил новую версию. Ошибка не появляется, но и вконтакт ничего не публикуется.
Где смотреть?
avatar
1. Попробуйте еще раз внимательно пройтись по инструкции установки.
2. Пользователь от имени которого получается access_token, должен быть администратором группы, в противном случае пост появляется в разделе «предлагаемых новостей»
avatar
1. Все сделано по инструкции.
2. Пользователь администратор. Но там еще есть Создатель. Может именно его надо использовать?
avatar
Очень странно…
avatar
ВЫ НЕ ПОВЕРИТЕ — ОНО САМО ЗАРАБОТАЛО!!!)))
avatar
Верю :) Вчера у меня от плагин тоже чудеса творил)))
Полдня потратил казалось бы на банальные вещи.
avatar
Было бы хорошо, если бы он брал значение из конфига о количестве голосов, которые требуются для вывода на главную и можно было постить по этому критерию т.к.
1. Эта возможность может использоваться для рекламного спама группы
2. Может использоваться для продвижения не тематических постов, ведь фильтр кармой отключен.
3. Вариации на эту тему )
avatar
Публикация постов в группу доступна только адмнистраторам.
avatar
Купил. Работает вроде как надо. Но хотелось бы больше функций.

1. Неплохо бы чтобы 2-3 тега добавлялось в топик после ссылки с хэштегом.
2. Публикация новостей в несколько групп.

Не проверял, поэтому спрошу. Постить в ВК могут все пользователи или только админы? Если нет, надо бы сделать функцию только для админов или для всех.(на выбор)
avatar
1. А какой смысл если хештег скорее всего увидеть посетителя из Вашей группы и Вашего сайта.
2. Если запрос будет массовым, то тогда можно будет рассмотреть данное предложение.
3. Уже писал что публикация в группу только для администраторов
avatar
по хэштегам работает поиск вконтакте.
avatar
Было бы неплохо получить опциональную возможность для каждого из коллективных блогов публиковать посты в своей, отдельной группе
avatar
Хорошая идея. Посмотрим сколько Вас поддержит пользователей.
avatar
Добавьте тикет задача, чтобы не забыть реализовать Ваше предложение в дальнейшем.
avatar
Не хочу показаться занудой, но подобных случаях «вы» пишется с маленькой буквы. Задачу добавил, спасибо за оказанное внимание.
avatar
А можно с помощью плагина публиковать не в группу, а в личную страницу?
avatar
Исходя из апи можно, но я не пробовал. Access_token позволит публиковать посты только на страницу того, кто его получил.
avatar
Баг, когда заходишь в настройки профиля:

Fatal error: Uncaught exception 'Exception' with message 'Undefined method module: MenuSettingsTpl' in /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php:604 Stack trace: #0 /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php(531): Engine->GetModule('MenuSettingsTpl') #1 /var/www/mtes/data/www/mtes.ru/engine/classes/Hook.class.php(71): Engine->_CallModule('MenuSettingsTpl', Array) #2 [internal function]: Hook->__call('MenuSettingsTpl', Array) #3 [internal function]: PluginPostingingroups_HookMain->MenuSettingsTpl(Array) #4 /var/www/mtes/data/www/mtes.ru/engine/modules/hook/Hook.class.php(292): call_user_func_array(Array, Array) #5 /var/www/mtes/data/www/mtes.ru/engine/modules/hook/Hook.class.php(244): ModuleHook->RunType(Array, Array) #6 [internal function]: ModuleHook->Run('template_menu_s...', Array) #7 /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php(558): call_user_func_a rray(Array, Array) #8 /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php(667): Engine->_CallModule(' in /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php on line 604


Баг вызывает именно плагин т.к при деактивации все работать начинает нормально.
avatar
баг пофиксил.
avatar
поставил версию 1.1.1 ошибка осталась

Fatal error: Uncaught exception 'Exception' with message 'Undefined method module: MenuSettingsTpl' in /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php:604 Stack trace: #0 /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php(531): Engine->GetModule('MenuSettingsTpl') #1 /var/www/mtes/data/www/mtes.ru/engine/classes/Hook.class.php(71): Engine->_CallModule('MenuSettingsTpl', Array) #2 [internal function]: Hook->__call('MenuSettingsTpl', Array) #3 [internal function]: PluginPostingingroups_HookMain->MenuSettingsTpl(Array) #4 /var/www/mtes/data/www/mtes.ru/engine/modules/hook/Hook.class.php(292): call_user_func_array(Array, Array) #5 /var/www/mtes/data/www/mtes.ru/engine/modules/hook/Hook.class.php(244): ModuleHook->RunType(Array, Array) #6 [internal function]: ModuleHook->Run('template_menu_s...', Array) #7 /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php(558): call_user_func_array(Array, Array) #8 /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php(667): Engine->_CallModule(' in /var/www/mtes/data/www/mtes.ru/engine/classes/Engine.class.php on line 604
avatar
не могу опубликовать топик
выдает :,, Недостаточно прав для загрузки изображений в соцсеть,,
что можно тут поделать?
где же эти права задать?
avatar
скорее всего неправильно указан токен
avatar
он должен создаваться каждый раз другой?
потому, как я пересоздал раза 4-5. и миниприложение тоже 2 раза уже создавал.
avatar
да, и пункт: 5. В настройках приложения выберите созданную группу.
где это сделать?
avatar
avatar
У меня уже проблема даже не в настройках плагина, а его конфликте с сайтом.
Когда я после активации постовика захожу в настройки профиля, то выдает вот такую ахинею:

Fatal error: Uncaught exception 'Exception' with message 'Undefined method module: MenuSettingsTpl' in /home/m/mishay/zippyblog.ru/public_html/engine/classes/Engine.class.php:604 Stack trace: #0 /home/m/mishay/zippyblog.ru/public_html/engine/classes/Engine.class.php(531): Engine->GetModule('MenuSettingsTpl') #1 /home/m/mishay/zippyblog.ru/public_html/engine/classes/Hook.class.php(71): Engine->_CallModule('MenuSettingsTpl', Array) #2 [internal function]: Hook->__call('MenuSettingsTpl', Array) #3 [internal function]: PluginPostingingroups_HookMain->MenuSettingsTpl(Array) #4 /home/m/mishay/zippyblog.ru/public_html/engine/modules/hook/Hook.class.php(292): call_user_func_array(Array, Array) #5 /home/m/mishay/zippyblog.ru/public_html/engine/modules/hook/Hook.class.php(244): ModuleHook->RunType(Array, Array) #6 [internal function]: ModuleHook->Run('template_menu_s...', Array) #7 /home/m/mishay/zippyblog.ru/public_html/engine/classes/Engine.class.php(558): call_user_func_array(Array, Array) #8 /home/m/mishay/zippyblog.ru/public_h in /home/m/mishay/zippyblog.ru/public_html/engine/classes/Engine.class.php on line 604
avatar
Спасибо за помощь!
Группа у меня там отмечена — ничего не помогает.
Я по инструкции установки уже 3-4 раза все повторял и никакого толку.
avatar
Группа у меня там отмечена
А Вы администратор этой группы?

Возможно если вы запишите видео того как Вы все делаете, то я смогу указать на ошибки. Либо давайте доступ через тимвьюер через личку, чтобы увидеть.
avatar
да, я админ группы
с видео что-то придумаю и сброшу
avatar
Ошибка профиля исправлена в версии 1.2.1
avatar
я так понимаю, что версия 1.2.1 еще не залита на раздачу, потому, как у меня там только 1.1.1?
avatar
на модерации.
avatar
Спасибо вам большое!
За терпимость к моим страдальческим попыткам что-то сделать
avatar
Пожалуйста. :)
avatar
Как сделать, что бы чекбокс был изначально отмечен?
avatar
добавил дополнительную настройку.
$config['vk']['published_default'] = 1; // Чекбокс по умолчанию включен если 1
avatar
эту строку добавить в конфиг или скачать свежую версию плагина?
avatar
этот функционал добавлен в версии 1.2.1.
avatar
Вот что за ерунда — то публикует в группу, то нет. В чем проблема? В плагине и в вк?
avatar
Самым трудоемким при публикации является передача картинки на сервер VK. Попробуйте уменьшить размер картинок для загрузки.
avatar
хе-хе… лс сам жмет картинки, 640 пиксей по ширине, картика в 50 кб, куда уж меньше?
avatar
Это если через фотосет.
Плагин может загружать картинку по внешнему урлу.
По возможности выложите видео возникновение ошибки.
avatar
Через фотосет жмет до 1000 пикселей по ширине. внешними урлами не пользуемся
avatar
Очень сложно понять в чем может быть ошибка не видя ничего :)
Если бы проблема была в коде, то он не работал бы стабильно, а если ошибка периодическая, то скорее всего проблема кроется либо в настройках серверов обменивающихся сторон, либо в канале по которому передаются данные.
Так же сталкивался с проблемой когда фотосет один файл жпг принимал, а на другой выдавал ошибку. В данной ситуации обычное пересохранение картинки помогало.
avatar
Согласен. Сегодня 3 топика опубликовались, а 4-й нет. И проверить не могу, уже опубликовано. Понаблюдаю еще, соберу статистику
avatar
Надо бы разделить заголовок поста от тела хотя бы одной строкой, а то сливается и не красиво это дело все выглядит. :) Особенно когда заголовки длинные и пересекаются с началом текста. Тогда пост становится похож на тавтологию )
avatar
В файле plugins/postingingroups/classes/modules/vk/Vk.class.php строку 56
замените на
'message' => $oTopic->getTitle() . PHP_EOL . PHP_EOL . $sMessage . PHP_EOL . $oTopic->getUrl(),
avatar
Заметил баг. Если картинка в топике идет после текста, в ВК запись не идет. Надо бы это исправить.
avatar
Добавьте в Задачи в каталоге.
avatar
Сегодня получил такое сообщение — «Недостаточно прав для загрузки изображений в соцсеть»

Что делать?
avatar
Сорри за шухер, аккаунт взломали, вк заморозил.
avatar
После разморозки сменился кей, пришлось по новой переписывать
avatar
Что-то я не очень догоняю. ВК без всяких плагинов прекрасно кушает топики при указании RSS в настройках группы.
avatar
Плагин дает выборочной публикации.
avatar
Leg1oneR
Вопрос следующий:
Все же, по какому алгоритму работает плагин? Чем он лучше кнопки «поделиться» в соц. сети?
Может ли он работать в авто. режиме, например, если у топика +1 голос, то он его публикует в группу в контакте автоматом, без участия со стороны?

В автоматическом режиме плагин не работает.
Кнопка поделиться публикует запись на Вашу стену, плагин — в группу.
avatar
Когда наконец обновите плагин. У меня проблемы такого плана.
1. перестали публиковаться новости.(буквально недавно)
2. при публикации новостей «502 Bad Gateway» сайт буквально падает на пару минут. Это вызывает именно ваш плагин потому что если отключаю все нормально.
3. Видео не публикуется в группе. Если нету возможности публиковать видео пусть хоть подхватывает картинку из превью топика. Иначе получается голый текст в группе.(а это не привлекает внимание пользователей)
avatar
Совсем недавно, наблюдались проблемы с сервером VK. Возможно вы как раз попали в этот момент.
Если топики сейчас еще до сих пор не публикуются, то выложите скриншот консоли и ошибки если она есть при этом.

Ошибка «502 Bad Gateway» скорее всего появляется потому, что скрипт не успевает выполниться, т.е. ему физически не хватает времени. Попробуйте в файле plugins/postingingroups/classes/modules/vk/Vk.class.php добавить строкой 70 следующий код.
set_time_limit(0);

Должно получиться что-то такое:
private function CallMethod($sMethod, $mParams)
	{
		set_time_limit(0);
		if (is_array($mParams)) {

В следующей версии плагина планируется сделать отложенную публикацию по крону, чтобы само добавление топика не тормозилось.

Проверку на картинку тоже постараюсь добавить. Видео публиковать пока не планируется.
avatar
а как сделать чтобы все пользователи публиковали в группу а не только администраторы
avatar
когда новая версия??? Сколько еще ждать? Скоро срок лицензии закончиться.
У меня ваш метод не работает. Все равно выдает «502 Bad Gateway».
avatar
А как бы реализовать, загрузку не первого фото, а рендомно и в идеале штук 5
avatar
Рендомное фото сделал. И убрал зависимость от опубликован в ВК или нет, так как с другими плагинами и при изменения заголовка глючило. У меня теперь автоматом постится при определенном рейтинге пользователя, и админ постит если ниже. Автоматика получилась.
avatar
Добрый день!
Как в группе удалить уведомления о новых топиках?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.