node-vkapi ·
![npm](https://img.shields.io/npm/dt/node-vkapi.svg)
$ npm install node-vkapi --only=prod
Refer to README_EN.md for english docs.
Возможности
- Простой вызов всех существующих методов API ВКонтакте
- Авторизация пользователя и получение токена
- Прямая авторизация через официальное приложение (Android, iPhone)
- Авторизация через Web-версию сайта
- Загрузка файлов любого типа
- Разгадывание капчи с помощью стороннего сервиса
Пример использования
const vkapi = new (require('node-vkapi'))();
vkapi.call('users.get', {
user_ids: '1',
fields: 'verified,sex'
})
.then(users => console.dir(users[0]))
.catch(error => console.error(error));
Документация
new VkApi([options])
options<Object>
Опции экземпляра VkApi
Options
Свойства объекта options и их значения по умолчанию.
{
accessToken: null,
apiVersion: '5.68',
appId: null,
appSecret: null,
captchaApiKey: null,
captchaService: 'anti-captcha',
userLogin: null,
userPassword: null,
baseDelay: 334
}
vkapi.authorize(params)
Осуществляет прямую авторизацию, т.е. авторизует пользователя в одном из официальных приложений ВКонтакте, используя логин и пароль пользователя.
Params
Параметры запроса на прямую авторизацию и их значения по умолчанию.
{
client: 'android',
login: vkapi.options.userLogin,
password: vkapi.options.userPassword,
scope: MAX_SCOPE
}
vkapi.call(method[, params])
method<String>
Название методаparams<Object>
Параметры метода- Returns
Promise<Any>
Вызывает методы API ВКонтакте.
При вызове метода execute
будет возвращён полный ответ от ВКонтакте. Подробнее
vkapi.logIn(params)
Авторизует пользователя через мобильную Web-версию ВКонтакте.
При этом есть возможность использовать ID неофициального приложения.
Params
Параметры запроса на авторизацию через Web-версию и их значения по умолчанию.
{
appId: vkapi.options.appId,
login: vkapi.options.userLogin,
password: vkapi.options.userPassword,
scope: MAX_SCOPE
}
vkapi.upload(type, files[, params[, afterUploadParams]])
type<String>
Тип загрузкиfiles<Any>
Файл(ы) к загрузкеparams<Object>
Параметры запроса на получение URL для загрузки. ПодробнееafterUploadParams<Object>
Параметры запроса на сохранение загруженного файла. Подробнее- Returns
Promise<Any>
Выполняет загрузку файлов во ВКонтакте.
Не забывайте, что для загрузки файлов вы должны иметь соответствующие разрешения.
Типы загрузок
Files
Переменная files может быть как единственным файлом к загрузке, так и массивом файлов (только для типа photo_album). Каждый отдельный файл должен представлять собой FS Stream либо объект, который содержит следующие свойства:
Свойство | Тип | |
---|
content | Buffer | Содержимое файла |
name | String | Имя файла |
Как загружать граффити и аудио-сообщения?
Для того, чтобы загрузить граффити или аудио-сообщение, нужно указать document
как тип загрузки, а в параметрах запроса params
указать тип загружаемого документа: для граффити — это graffiti
, для аудио-сообщения — audio_message
.
const fs = require('fs');
const vkapi = new (require('node-vkapi'))({ accessToken: 'your_access_token' });
vkapi.upload('document', fs.createReadStream('./path/to/audiofile.mp3'), { type: 'audio_message' })
.then(response => console.dir(response))
.catch(error => console.error(error));
Пример загрузки файла
Примеры загрузки файлов вы можете найти в папке examples.
Формат ответа на запрос авторизации
Функции vkapi.authorize()
и vkapi.logIn()
возвращают ответ в одинаковом формате.
{
access_token
expires_in
user_id
?email
}