VK-Promise
Модуль для работы с ВКонтакте API и Callback API ВКонтакте.
Установка
npm install VK-Promise
Tl;dr
vk( метод, данные)
.then( on_response)
.catch( on_error);
vk.upload(
метод_получения_сервера,
метод_сохранения_файла,
{
get: {},
save: {},
files: {
file1: путь_к_файлу,
file2: stream ,
file3: {filename: имя_файла, buffer: Buffer},
}
}
);
vk.init_longpoll();
vk.init_execute_cart();
vk.init_callback_api();
VK.getAttachmentUrl( attachment);
VK.Array2Object( array);
Элементарный запрос
var vk = require("VK-Promise")("Ваш access_token");
vk.users.get({
user_id: 1
}).then(function (res) {
console.log("response",res);
}).catch(function (error) {
console.log("Ошибка",error);
});
Обработка need_captcha
var vk = require("VK-Promise")("Ваш access_token");
vk.on("captcha",function(event, data){
console.log("Ссылка на код:", data.captcha_img);
data.submit("Вводим код с картинки");
});
vk("captcha.force",{}).then(function () {
console.log("response",res);
})
Элементарный бот
var VK = require("VK-Promise"),
vk = new VK("ваш access_token");
vk.init_longpoll();
vk.on("message",function (event, msg) {
if(msg.body == "ping")
msg.send("pong");
});
Элементарный бот для группы через Callback API с оптимизацией ответа на сообщения через execute
var VK = require("VK-Promise"),
http = require("http"),
vk = VK("ваш access_token группы");
var callback = vk.init_callback_api("Строка, которую должен вернуть сервер");
http.createServer(function (req, res) {
if(req.url == "/vk_callback_api")
return callback(req, res);
res.end("Error 404");
}).listen(80);
vk.init_execute_cart();
vk.on("message",function (event, msg) {
msg.send("OK");
event.ok();
});
vk.on("group_leave",function (event, data) {
if(data.self)
vk.messages.send({
message:"Ну куда же ты :_(",
peer_id: data.object.user_id
});
event.ok();
});
Загрузка файлов по ссылке
var VK = require("VK-Promise"),
https = require("https"),
vk = VK("Ваш access_token");
https.get("https://fs.flyink.ru/1.png",function(stream){
stream.filename = "filename.png";
gr.upload(
"docs.getUploadServer",
"docs.save",{
files: {file: stream}
}
).then(function (r) {
console.log("response",r)
})
});
Дополнительные данные
Отключение повтора запроса при 6й ошибке: retry: false (по умолчанию true)
Игнорирование сборщика запросов (init_execute_cart): ignore_cart: true (по умолчанию false)