Часто так бывает, что мы хотим автоматизировать то или иное действие. Но нехватка времени или просто лень не дает возможности в полной мере ознакомиться с документацией по API вконтакте. И для экономии своего и вашего времени публикую эту статью. Вдохновлением к написанию стала эта статья – http://habrahabr.ru/blogs/vkontakte/131943/ .
Общаться с апи контакта будем из PHP. В принципе, ход действий для написания программ на других языках программирования, в том числе и для компьютера.
Итак, разберем алгоритм создания программы и ее интеграции с ВКонтакте.
Первое что нам нужно сделать, это создать (зарегистрировать) Desktop-приложение. Пусть даже оно и будет серверным
Нажимаем на кнопку «Подключить сайт» в разделе разделе «Разработчикам»
Вводим название и выбираем тип — Standalone-приложение.
После чего, на ваш мобильный телефон, привязанный к аккуанту придет код, который необходимо ввести в проверочное поле.
Для работой с API контакта нам понадобится ID приложения.
Авторизация приложения на ВКонтакте происходит на базе протокола OAuth 2.0 и состоит из 3х шагов:
- Открытие окна браузера для аутентификации пользователя на сайте Вконтакте.
- Пользователь разрешает доступ приложению к запрашиваемым правам.
- Вконтакте возвращает приложению access_token для доступа к API.
http://api.vk.com/oauth/authorize?client_id=%ID%&redirect_uri=http://api.vk.com/blank.html&scope=%permissions%&display=%display%&response_type=token
где:
%ID%- Id вашего приложения, полученного ранее;
%display% — внешний вид окна авторизации(page, popup, touch и wap).
%permissions% – список прав доступа приложения к данным пользователя. Указываются через запятую(notify,friends,photos,audio,video,docs,notes,pages,wall,groups,messages,ads) либо в цифровом виде, суммируя необходимые права (1,2,4,8,16,32,64,…,262144).
Пример: Получить права на Доступ к друзьям и Доступ к фотографиям пользователя:
2 + 4 = 6; scope=1026 либо scope=friends,photos
В ответ на запрос сервер вернет:
access_token=93f22a20ddf1174f939108d43e936cd6bb193469344639c2d1c268f3f65fa86 &expires_in=86400&user_id=11347652
где access_token — необходимый нам параметр, для отправки последующий запросов к API Вконтакте;
expires_in — время жизни token, после истечения необходимо обновить;
user_id — id пользователя.
Связь “программа → приложение → пользователь” установлена. Теперь мы можем отправлять любые запросы к API.
Синтаксис запросов:
https://api.vkontakte.ru/method/%method%?%var%=%val%&access_token=%token%
где %method% – метод, список методов и необходимые параметры можно посмотреть здесь.
%var% – переменная
%val% – значение переменной
%token% – токен, полученный выше
В качестве примера отправим сообщение через API:
Название метода: messages.send
Необходимое право: 4096
Параметры: uid — id пользователя, которому отправляется сообщение, является обязательным.
message — текст сообщения, является обязательным, если не указан attachment.
attachment — приложения к сообщению, указанные через запятую в формате
<тип><владалец>_
title — Заголовок.
type — 0 (по умолчанию)- обычное, 1 — из чата.
Пример запроса отправки сообщения пользователю id1:
https://api.vkontakte.ru/method/messages.send?uid=1&message=Hello%20World&title=SVK&access_token= 93f22a20ddf1174f939da08d43e936cd6bb193469344639c2d1c268f3f65fa86
В ответ получим ID сообщения или код ошибки.
{“response”:10847}
Теперь приведу пример кода на php, который умеет обновлять статус странички вконтакте автоматом.
Создаем файл post_status_vk.php
$token=’93f22a20ddf1174f93df48d43e936cd6bb193469344639c2d1c268f3f65fa86′;
//тут токен, полученный ранее, советую обновлять этот токен также автоматом, время его жизни хранить, к примеру, в базе данных.
$status_file = “status.txt”;//файл со статусами
$z = file ($status_file);
$my_status = $z[array_rand($z)]; // получаем случайный статус из файла
$sRequest = ‘https://api.vkontakte.ru/method/status.set?text=’ . $my_status . ‘&access_token=’ . $token;
print_r(json_decode(file_get_contents($sRequest))); // шлем запрос к вконтакту и показываем ответ
Для большей автоматизации советую добавить этот файл в крон.
Оставить комментарии