Часто бывает мы хотим автоматизировать то или иное действие. Порой спешка или просто лень не дает нам возможности ознакомиться со всей документацией(по API VK).
Разработать программу для работы с API ВКонтакте проще чем кажется. Подойдет любой язык, умеющий отправлять http get запросы (соответственно получать ответ). Например: Delphi, shell, C, Perl, PHP, Python и т. п.
![image](http://dimahorror.ru/habr/10.png)
Итак, разберем алгоритм создания программы и интеграции её с ВКонтакте.
Первое что нам нужно сделать, это создать(зарегистрировать) Desktop-приложение.
Нажимаем на кнопку «Подключить сайт» в разделе «Разработчикам»
Вводим название и выбираем тип — Standalone-приложение.
![image](http://dimahorror.ru/habr/1.png)
После чего, на ваш мобильный телефон (привязанный к аккуанту) придет код, который необходимо ввести в проверочное поле.
Создается приложение, в настройках нам потребуется ID приложения.![image](http://dimahorror.ru/habr/2.png)
Авторизация приложения с ВКонтакте происходит на базе протокола OAuth 2.0 и состоит из 3х шагов:
, где:
##ID##- Id вашего приложения, полученного ранее;
##ОТОБРАЖЕНИЕ## — внешний вид окна авторизации(page, popup, touch и wap).
##ПРАВА##- список прав доступа приложения к данным пользователя. Указываются через запятую(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
Подробнее о правах доступа можно почитать здесь и здесь.
![image](http://dimahorror.ru/habr/5.png)
В ответ на запрос, сервер вернет:
, где access_token — необходимый нам параметр, для отправки последующий запросов к API Вконтакте;
expires_in — время жизни token, после истечения необходимо обновить
( UPD: если в правах указать «offline» или 999999, то токен будет бесконечным);
user_id — id пользователя.
Связь программа-приложение-пользователь установлена. Теперь мы можем отправлять любые запросы к Api(в мерах разрешенных пользователем).
Синтаксис запросов:
Список методов и их описание можно посмотреть здесь и здесь.
Название метода: messages.send
Необходимое право: 4096
Параметры: uid — id пользователя, которому отправляется сообщение, является обязательным.
message — текст сообщения, является обязательным, если не указан attachment.
attachment — приложения к сообщению, указанные через запятую в формате
title — Заголовок.
type — 0 (по умолчанию)- обычное, 1 — из чата.
Пример запроса отправки сообщения пользователю id66392446:
В ответ получим ID сообщения или код ошибки.
(До нового года осталось… дней + Случайная фраза из файла).
Создаем php файл, который будет отправлять статус:
pub.php
Теперь добавляем pub.php в cron с обновлением, не чаще чем раз в минуту, и наблюдаем результат.![image](http://dimahorror.ru/habr/3.png)
![image](http://dimahorror.ru/habr/4.png)
Таким способом можно автоматически публиковать статьи, фотографии, видео, отправлять сообщения и много других интересных вещей.
Экспериментируйте! Благодарю за внимание.
UPD: перед отправкой текстовую строку необходимо кодировать
Разработать программу для работы с API ВКонтакте проще чем кажется. Подойдет любой язык, умеющий отправлять http get запросы (соответственно получать ответ). Например: Delphi, shell, C, Perl, PHP, Python и т. п.
![image](http://dimahorror.ru/habr/10.png)
Итак, разберем алгоритм создания программы и интеграции её с ВКонтакте.
Первое что нам нужно сделать, это создать(зарегистрировать) Desktop-приложение.
Нажимаем на кнопку «Подключить сайт» в разделе «Разработчикам»
Вводим название и выбираем тип — Standalone-приложение.
![image](http://dimahorror.ru/habr/1.png)
После чего, на ваш мобильный телефон (привязанный к аккуанту) придет код, который необходимо ввести в проверочное поле.
Создается приложение, в настройках нам потребуется ID приложения.
![image](http://dimahorror.ru/habr/2.png)
Авторизация приложения с ВКонтакте происходит на базе протокола 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=##ПРАВА##&display=##ОТОБРАЖЕНИЕ## &response_type=token
, где:
##ID##- Id вашего приложения, полученного ранее;
##ОТОБРАЖЕНИЕ## — внешний вид окна авторизации(page, popup, touch и wap).
##ПРАВА##- список прав доступа приложения к данным пользователя. Указываются через запятую(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
Подробнее о правах доступа можно почитать здесь и здесь.
![image](http://dimahorror.ru/habr/5.png)
В ответ на запрос, сервер вернет:
access_token=93f22a20ddf1174f939108d43e936cd6bb193469344639c2d1c268f3f65fa86 &expires_in=86400&user_id=11347652
, где access_token — необходимый нам параметр, для отправки последующий запросов к API Вконтакте;
expires_in — время жизни token, после истечения необходимо обновить
( UPD: если в правах указать «offline» или 999999, то токен будет бесконечным);
user_id — id пользователя.
Связь программа-приложение-пользователь установлена. Теперь мы можем отправлять любые запросы к Api(в мерах разрешенных пользователем).
Синтаксис запросов:
_https://api.vkontakte.ru/method/##МЕТОД##?##НАЗВАНИЕ_ПЕРЕМЕННОЙ##=##ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ## &access_token=##ТОКЕН,ПОЛУЧЕНЫЙ_РАНЕЕ##
Список методов и их описание можно посмотреть здесь и здесь.
Для примера рассмотрим метод отправления личного сообщения
Название метода: messages.send
Необходимое право: 4096
Параметры: uid — id пользователя, которому отправляется сообщение, является обязательным.
message — текст сообщения, является обязательным, если не указан attachment.
attachment — приложения к сообщению, указанные через запятую в формате
<тип><владалец>_<idмедиа>
(Пример:photo100172_166443618).title — Заголовок.
type — 0 (по умолчанию)- обычное, 1 — из чата.
Пример запроса отправки сообщения пользователю id66392446:
_https://api.vkontakte.ru/method/messages.send?uid=66392446&message=ХабраХабр&title=Заголовок&access_token= 93f22a20ddf1174f939108d43e936cd6bb193469344639c2d1c268f3f65fa86
В ответ получим ID сообщения или код ошибки.
{"response":10847}
В качестве примера программы привожу свой php-сценарий автоматического обновления статуса Вконтакте
(До нового года осталось… дней + Случайная фраза из файла).
Создаем php файл, который будет отправлять статус:
pub.php
<?php
$token='93f22a20ddf1174f939108d43e936cd6bb193469344639c2d1c268f3f65fa86';
//запишем токен, полученный ранее
$day = '15';
$month = '11';
//Дата, до которой будем отсчитывать время
$year = '2011';
function dateDiff($startDay, $endDay) {
$endDay = strtotime($endDay);
$startDay= strtotime($startDay);
$difference = abs($endDay - $startDay);
$return['days'] = floor($difference / 86400);
$return['hours'] = floor($difference / 3600) % 24;
$return['minutes'] = floor($difference / 60) % 60;
return $return;
}
$date=dateDiff(date("j-n-Y G:i"),'19-11-2011 9:00');
$phrases = "/var/www/public/1.txt";//файл содержащий фразы
$z = file ($phrases);
$cz = count ($z) -1;
$r = rand (0, $cz);
//случайная фраза из файла
$text="Осталось $date[days] дней, $date[hours] часов.$z[$r]";
$sRequest = "https://api.vkontakte.ru/method/status.set?text=$text&access_token=$token";
echo $text;
// ответ от Вконтакте
$oResponce = json_decode(file_get_contents($sRequest));
Теперь добавляем pub.php в cron с обновлением, не чаще чем раз в минуту, и наблюдаем результат.
![image](http://dimahorror.ru/habr/3.png)
![image](http://dimahorror.ru/habr/4.png)
Таким способом можно автоматически публиковать статьи, фотографии, видео, отправлять сообщения и много других интересных вещей.
Экспериментируйте! Благодарю за внимание.
UPD: перед отправкой текстовую строку необходимо кодировать
$text=urlencode($text);