Socket
Socket
Sign inDemoInstall

vkapi-lib

Package Overview
Dependencies
53
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vkapi-lib

VK API Library.


Version published
Weekly downloads
5
decreased by-37.5%
Maintainers
1
Install size
3.97 MB
Created
Weekly downloads
 

Readme

Source

vkapi-lib

npm package

Библиотека для работы с VK API.

Содержание

Установка

npm install vkapi-lib

Подключение в проект:

const vk = require('vkapi-lib')

Методы

Инитализация с токеном

const API = new vk.API('ключ доступа')

В конструкторе можно указывать неограниченное число токенов (каждый токен как отдельный агрумент)

const API = new vk.API('ключ доступа1', 'ключ доступа2')

Авторизация по логину и паролю

let API

auth.password('login', 'password', resp => {
    if (resp.error) {
        return console.log(resp.error)
    }
    
    API = new vk.API(resp.access_token)
})

Authorization Code Flow (user | group)

const auth = new vk.Auth

let API

auth.acf(client_id, client_secret, redirect_uri, code, resp => {
    if (resp.error) {
        return console.log(resp.error)
    }
    
    API = new vk.API(resp.access_token)
})

Получение сервисного ключа доступа (Client Credentials Flow)

const auth = new vk.Auth

let API

auth.ccf(client_id, client_secret, grant_type, resp => {
    if (resp.error) {
        return console.log(resp.error)
    }
    
    API = new vk.API(resp.access_token)
})

Вызов метода VK API

call(method, options = {}, callback = this.default_callback, token)
  • method (string) - название метода
  • options (object) - параметры вызова
  • callback (function, string) - callback-функция (по умолчанию дефолтный каллбек)
  • token (int, string) - порядковый идентификатор токена (по порядку, указанному в конструкторе) | токен в строковом формате (необязательный параметр)

Пример использования:

API.call('users.get', {
    user_ids: 1
}, (error, response) => {
    if (error) {
        console.log(error)
    }
    
    console.log(response[0])
})

API.call('users.get', {
    user_ids: 1
}, 'console.log(error, response)')

API.call('users.get', {
    user_ids: 1
})

API.call('users.get')

Лонгполл

longpoll(callback, params, token)
  • callback (function) - callback-функция (по умолчанию дефолтный каллбек)
  • params (object) - параметры лонгполла
  • token (int, string)

Пример использования:

API.longpoll(data => {
    console.log(data)
})

Событие: новое сообщение

lp_message(callback, token)
  • callback (function) - callback-функция (по умолчанию дефолтный каллбек)
  • token (int, string)

Пример использования:

API.lp_message(message => {
    console.log(message)
})

Подробнее про объект message

Отправка сообщения

send(text, options, peer, callback, token)
  • text (string) - текст сообщения
  • options (object) - параметры отправки
  • peer (int, object) - адресат (user_id для пользователя, 2e9+chat_id для беседы, -group_id для сообщества) в числовом формате, либо объект сообщения, содерржащий в себе параметр peer_id
  • callback (function) - callback-функция (по умолчанию дефолтный каллбек) для возврата статуса отправления
  • token (int, string)

Пример использования:

API.lp_message(message => {
    API.send('Example', {
        forward_messages: message.id
    }, message)
})

API.send('Example', {}, 168557207)

Отправка стикера

sticker(sticker_id, peer, callback, token)
  • sticker_id (int) - идентификатор стикера
  • peer (int, object) - адресат (user_id для пользователя, 2e9+chat_id для беседы, -group_id для сообщества) в числовом формате, либо объект сообщения, содерржащий в себе параметр peer_id
  • callback (function) - callback-функция (по умолчанию дефолтный каллбек) для возврата статуса отправления
  • token (int, string)

Пример использования:

API.sticker(101, 168557207)

Методы загрузки медиа (подробнее)

// Загрузка фотографий в альбом
uploadPhoto(data, options, callback, token)

// Загрузка фотографий на стену
uploadPhotoOnWall(data, options, callback, token)

// Загрузка главной фотографии пользователя или сообщества
uploadOwnerPhoto(data, options, callback, token)

// Загрузка фотографии в личное сообщение
uploadMessagesPhoto(data, callback, token)

// Загрузка главной фотографии для чата
uploadChatPhoto(data, options, callback, token)

// Загрузка фотографии для товара
uploadMarketPhoto(data, options, callback, token)

// Загрузка фотографии для подборки товаров
uploadMarketAlbumPhoto(data, options, callback, token)

// Загрузка аудиозаписей
uploadAudio(data, options, callback, token)

// Загрузка видеозаписей
uploadVideo(data, options, callback, token)

// Загрузка документов
uploadDocs(data, options, callback, token)

// Загрузка документов на стену
uploadWallDocs(data, options, callback, token)

// Загрузка документа в личное сообщения
uploadMessagesDocs(data, options, callback, token) // в данный момент недоступно

// Загрузка обложки сообщества 
uploadOwnerCoverPhoto(data, options, callback, token)
  • data (string | array) - путь к файлу на диске | URL
  • options (object) - опции загрузки
  • callback (function) - callback-функция (по умолчанию дефолтный каллбек) для возврата статуса отправления
  • token (int, string)

Примеы использования:

API.uploadPhoto(['test1.jpg', 'https://nodei.co/npm/vkapi-lib.png'], {
    album_id: 169819278,
    group_id: 123396984
}, (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadPhotoOnWall('https://nodei.co/npm/vkapi-lib.png', {
    group_id: 123396984
}, (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadPhotoOnWall('test1.jpg', {
    group_id: 123396984
}, (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadOwnerPhoto('test1.jpg', {
    owner_id: -123396984
}, (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadMessagesPhoto('test1.jpg', (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadChatPhoto('test1.jpg', {
    chat_id: 103
})

API.uploadMarketPhoto('test1.jpg', {
    group_id: -123396984,
    main_photo: true
})

API.uploadMarketAlbumPhoto('test1.jpg', {
    group_id: -123396984
})

API.uploadAudio('test.mp3', {
    artist: 'Usher feat. Lil\' Jon, Ludacris',
    title: 'Yeah!'
}, (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadVideo('test.webm', {
    name: '.webm'
}, (error, response, upload) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
    
    upload(console.log)
}

API.uploadDocs('test.txt', {
    group_id: -123396984,
    title: 'Text file',
    tags: 'test, text, txt'
}, (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadWallDocs('test.txt', {
    group_id: -123396984,
    title: 'Text file',
    tags: 'test, text, txt'
}, (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadMessagesDocs('test.opus', {
    peer_id: 168557207,
    title: 'audio_message.opus',
    type: 'audio_message'
}, (error, response) => {
    if (error) {
        return console.log(error)
    }
    
    console.log(response)
})

API.uploadOwnerCoverPhoto('cover.png', {
    group_id: 123396984
})

Объект message

  • id (ing) - идентификатор сообщения
  • flags (int) - флаги сообщения
  • peer_id (int) - адресат
  • ts (int) - время UNIX timestamp
  • text (string) - текст сообщения
  • attachments (object) - вложения сообщения
  • random_id (int) - значение random_id, переданное отправителем
  • sender_id (int) - иднтификатор отправителя
  • out (bool) - флаг исходящего сообщения

Методы объекта message

read() // пометить сообщение как прочитанное
delete() // удалить сообщение
spam() // пометить сообщение как спам
restore() // восстановить удалённое сообщение (можно в течение 5 часов после удаления)
flag(flag) // проверка флага сообщения
getMedia(callback) // получение подробного объекта вложений сообщения
  • flag (int) - флаг (объект: LP_MESSAGE_FLAGS, API.flags) (подробнее)
  • callback (function) - callback-функция (по умолчанию дефолтный каллбек) для возврата статуса отправления

Примеы использования:

API.lp_message(message => {
    if (!message.flag(API.flags.OUTBOX)) {
        message.getMedia((error, response) => {
            if (error) {
                return console.log(error)
            }

            console.log(response)
        })
    }
})
Пример передаваемых getMedia данных в callback
read_state: 0,
  attachments:
   [ { type: 'photo',
       id: 456255039,
       album_id: -6,
       owner_id: 168557207,
       photo_75: 'https://pp.userapi.com/c638826/v638826207/4f93d/3IMgDciIdlk.jpg',
       photo_130: 'https://pp.userapi.com/c638826/v638826207/4f93e/yI5wtwl1qyw.jpg',
       photo_604: 'https://pp.userapi.com/c638826/v638826207/4f93f/f4DeBtdkj-A.jpg',
       photo_807: 'https://pp.userapi.com/c638826/v638826207/4f940/rJA41miL5Hw.jpg',
       photo_1280: 'https://pp.userapi.com/c638826/v638826207/4f941/J2gLGI92J0I.jpg',
       width: 1013,
       height: 599,
       text: '',
       date: 1498734394,
       post_id: 6223,
       item: 'photo168557207_456255039' },
     { type: 'audio',
       id: 456239534,
       owner_id: 168557207,
       artist: 'Xavier Wulf',
       title: 'Tortuga',
       duration: 158,
       date: 1492628273,
       content_restricted: 1,
       url: '',
       genre_id: 1001,
       is_hq: false,
       item: 'audio168557207_456239534' } ] }

Конструктор сообщений

message(token)
  • token (int, string)

Методы

// Задать текст сообщения
text(text, connect)

// Прикрепить изображения
photo(data...)

// Прикрепить видеозаписи
video(data...)

// Прикрепить аудизаписи
audio(data...)

// Прикрепить документы
doc(data...)

// Прикрепить голосовое сообщение (форматы: .ogg, .opus)
voice(data...)

// Прикрепить граффити (форматы: .jpg, .png, .gif)
graffiti(data...)

// Прикрепить запись на стене
wall(post...)

// Прикрепить товары
market(product...)

// Прикрепить геопозицию
geo(lat, long)

// Прикрепить сообщения
forward(message...)

// Отправить сообщение адресату
send(peer)
  • text (string) - текст сообщения
  • connect (bool) - задание коннектации
  • data (string, object) - путь к файлу на диске | URL | идентификатор в VK (переменное количество аргументов, каждое вложение заданного типа через запятую)
  • post (string) - идентификатор поста в VK
  • product (string) - идентификатор товара/магазина в VK
  • lat (float) - шитора на карте
  • long (float) - долгота на карте
  • 'message' (int, string, array) - идентификаторы сообщений для пересылки
  • peer (int, object) - адресат (user_id для пользователя, 2e9+chat_id для беседы, -group_id для сообщества) в числовом формате, либо объект сообщения, содерржащий в себе параметр peer_id

Пример использования:

API.message()
    .text('Test message')
    .photo('../test.jpg', 'photo168557207_456255039')
    .video('../test.webm')
    .audio('../test.mp3')
    .doc('../test.jpg')
    .voice('../test.opus')
    .graffiti('../test.png')
    .wall('wall-47590230_48')
    .market('product-13883743_256626')
    .geo(15,15)
    .forward(5918153, '5918009, 5916431', [5918409, 5918411, 5918412])
    .send(168557207) 

Keywords

FAQs

Last updated on 31 Aug 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc