Автопостинг для Вконтакте
Скрипт, позволяющий автоматизировать отправку постов на стену пользователя или группы
Al-Sher
Всем привет. Когда-то я поделился скриптом Автопостинга на Twitter, сегодня же я хочу поделиться с вами подобным скриптом, но оптимизированным для Вконтакте.
Класс, предназначенный для этого, можно найти тут.
В данный момент класс поддерживает лишь простую отправку постов на стену юзеров и групп, главное чтобы у вас были на это права. Я постарался добавить загрузку изображения и добавление ссылки и, вроде как, всё работает.
Начнем мы с основы. Прежде чем работать с данным скриптом, нам необходимо создатьStandalone-приложение и получить ключ доступа, то есть access token.
Данный процесс выходит за рамки статьи, поэтому описывать его не буду, лишь поделюсь ссылками:https://vk.com/editapp?act=create,https://oauth.vk.com/blank.html.
Теперь перейдем именно к классу: заполнению базовых переменных.
Прежде всего самым главным является ввод access token, который мы получим после создания приложения. Данный ключ необходимо вписать в переменную $token.
Теперь наш скрипт уже готов к работе. Осталось лишь разобрать передаваемые параметры и процесс вызова необходимых функций. Для удобства класс начинает работать сразу при вызове, например так:
$postVk=new postVK('тест автопостинга ВК');
Как можно было заметить мы перемещает запрос в переменную $postVk. Это сделано для последующей обработки ошибок. Данный код будет работать лишь при действительном токене и установленном owner в классе.
Чуть усложним задачу: Будем отправлять запрос на разные стены. Это может пригодиться, например, при работе с клиентами сайта. Вот пример вызова:
$postVk=new postVK('тест автопостинга ВК',Array('user_id'=>$id));
Тут мы передаем user_id, содержащий id пользователя, передаваемый в переменной id.
Если же требуется отправить пост на стену группы, то следует заменить user_id на group_id.
Это было очень просто :) Теперь добавим к нашему сообщению ссылку:
$postVk=new postVK('тест автопостинга ВК',Array('user_id'=>$id,'url'=>'<a href="http://web-wost.ru">http://web-wost.ru</a>'));
Мы добавили новую переменную - url. Скрипт сам обработает ссылку и добавит её в прикрепления. ВК позволяет прикреплять лишь одну ссылку к сообщению, поэтому добавление нескольких ссылок вызовет ошибки.
На последок хотелось бы рассказать об добавлении картинки к посту. В скрипте есть комментарий по этому поводу, который находится в функции "loadImage". Дело в том, что начиная с PHP 5.6 способ прикрепления файлов изменился и теперь используетсяCURLFile, вместо обычного "@". Если у вас возникли ошибки, то советую раскомментировать строку
$data = Array('file1'=>"@".$photo);
Прикрепить можно лишь то изображение, которое находится на вашем сервере. Вот пример вызова функции с добавлением картинки:
$postVk=new postVK('тест автопостинга ВК',Array('user_id'=>$id,'photo'=>__DIR__.'/image.png'));
Мы указываем переменной photo полный путь до image.png. Это действительно необходимо, так как в противном случае картинка не загрузится на сервер ВК.
В дальнейшем планирую расширить варианты прикрепленных файлов. Надеюсь данный скрипт вам пригодится и не вызовет никаких трудностей.
Кстати, ошибки выводятся в переменной error, а успешный результат, хранящий id поста, в return. Например вывести ошибку можно так:
echo $postVk->error;