WebWost WebWostbeta

Автопостинг для Вконтакте

Скрипт, позволяющий автоматизировать отправку постов на стену пользователя или группы

Al-Sher

Всем привет. Когда-то я поделился скриптом Автопостинга на Twitter, сегодня же я хочу поделиться с вами подобным скриптом, но оптимизированным для Вконтакте.

Класс, предназначенный для этого, можно найти  тут.

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

Начнем мы с основы. Прежде чем работать с данным скриптом, нам необходимо создать Standalone-приложение и получить ключ доступа, то есть access token.

Данный процесс выходит за рамки статьи, поэтому описывать его не буду, лишь поделюсь ссылками: https://vk.com/editapp?act=createhttps://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'=>'http://web-wost.ru'));

Мы добавили новую переменную - 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;

0 Комментариев

Новый комментарий