Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-vkcoinapi

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-vkcoinapi

Работа с API VK Coin

  • 1.3.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

vkcoinapi

Работа с API VK Coin

Особенности:

  • Реализованы все методы официального API
  • Удобная документация и хорошая тех. поддержка
  • Возможность получения платежей в режиме реального времени
  • Активные обновления
  • Не тянет за собой много библиотек
  • Есть своя беседа для обсуждения обновлений/багов

Планы:

  • Сделать WebHooks
  • Сделать гайды по установке и использованию на YouTube
  • Сделать папку с примерами

Установка

Windows:

  • Скачайте и установите последнюю версию Node.JS
  • Создайте в удобном месте папку, например vkcoin
  • Перейдите в командную строку: Win + R > cmd
  • Перейдите в папку: cd (путь до вашей папки)
  • Пропишите: npm i node-vkcoinapi

Ubuntu:

  • Установите Node.JS по этому гайду
  • Создайте в удобном месте папку, например vkcoin
  • Перейдите в папку: cd (путь до вашей папки)
  • Пропишите: npm i node-vkcoinapi

Начало работы

Для начала использования, вам нужно создать в своей папке исполняемый файл, пусть это будет index.js

Теперь его нужно открыть и импортировать библиотеку:

const VKCOINAPI = require('node-vkcoinapi');

const vkcoin = new VKCOINAPI(options = {});
ОпцияТипОписание
keyStringКлюч для взаимодействия с API
userIdNumberВаш айди ВК
tokenStringВаш токен

Где взять эти значения

Откройте свою аватарку и в адресной строке вы увидите подобное: https://vk.com/fakeman.cat_fmc?z=photo236908027_456259706%2Falbum236908027_0%2Frev

Вашим айди будет являться число после слова photo. В этом случае 236908027

  • Получение токена (token):

Откройте эту ссылку и нажмите разрешить

После этого в адресной строке будет подобное: https://api.vk.com/blank.html#access_token=xxxxxxxxxxxx&expires_in=0&user_id=user_id&email=email

Токеном будет являться строка от access_token до &expires. В этом случае xxxxxxxxxxxx

Методы

getTransactionList - Получает список ваших транзакций

async function run() {
    const result = await vkcoin.getTransactionList(tx);
    
    console.log(result);
}

run().catch(console.error);
ПараметрТипОписание
txArrayМассив айди переводов для получения ИЛИ [1] - последняя 1000 транзакций, [2] - 100

sendPayment - Делает перевод другому пользователю (в десятичных долях)

async function run() {
    const result = await vkcoin.sendPayment(toId, amount); // 1 коин = 1000 ед.
    
    console.log(result);
}

run().catch(console.error);
ПараметрТипОписание
toIdNumberАйди получателя
amountNumberСумма перевода

getLink - Получает ссылку для перевода

function run() {
    const link = vkcoin.getLink(amount, fixation);
    
    console.log(link);
}

run().catch(console.error);
ПараметрТипОписание
amountNumberСумма перевода
fixationBooleanФиксированная сумма или нет

formatCoins - Делает получаемое из API значение коинов читабельным. Например, приходит значение 1234567890. Этот метод сделает значение таким: 1 234 567,890

Это можно использовать в паре с другим методом:

async function run() {
    const trans = await vkcoin.getTransactionList([2]);

    const fixTrans = trans.response.map((tran) => {
        tran.amount = vkcoin.formatCoins(tran.amount);

        return tran;
    });

    console.log(fixTrans);
}

run().catch(console.error);
ПараметрТипОписание
coinsNumberВходящее значение коинов

getBalance - Получает баланс по айди пользователей

getMyBalance - Получает баланс текущего пользователя

async function run() {
    const balances = await vkcoin.getBalance([1, 100, 236908027]);
    const myBalance = await vkcoin.getMyBalance();

    console.log({ balances, myBalance });
}

run().catch(console.error);

Среди этих методов аргумент принимает только getBalance:

ПараметрТипОписание
userIdsArrayМассив айди пользователей

Updates

updates - Позволяет "прослушивать" события в VK Coin. Пока что я реализовал перехват входящего платежа, но вскоре придумаю что-нибудь ещё. И да, впервые работаю с сокетами :)

Запуск

Для запуска прослушивания есть 2 метода: startPolling и startWebHook

startPolling - Запускает обмен запросами между клиентом и сервером в режиме реального времени (WebSocket). Является лучшим и быстрым способом получения событий:

async function run() {
    await vkcoin.updates.startPolling(callback);
    
    /* Тут ваши действия со слушателем */
}

run().catch(console.error);
ПараметрТипОписание
callbackFunctionФункция обратного вызова, принимает в себя аргумент

Настоятельно рекомендую консолить то, что возвращает callback. Ведь там возвращается важная информация по переподключению:

vkcoin.updates.startPolling(async(data) => {
    console.log(data);
    
    /* Тут ваши действия со слушателем */
});

Или

async function run() {
    vkcoin.updates.startPolling(console.log);
    
    /* Тут ваши действия со слушателем */
}

startWebHook - Запускает сервер на 8181 порте для получения событий. Может не работать на Windows и является неоптимальным способом получения событий. В этом случае можно обойтись без асинхронной функции:

vkcoin.updates.startWebHook(options = {});

/* Тут ваши действия со слушателем */
ОпцияТипОписание
urlStringАдрес вашего сервера для получения событий
portNumberПорт для запуска сервера (8181 - по умолчанию)

События

updates.onTransfer - Перехватывает входящие платежи, принимает один аргумент

async function run() {
    await vkcoin.updates.startPolling();

    vkcoin.updates.onTransfer((event) => {
        console.log(event);
    });
}

run().catch(console.error);

Или

vkcoin.updates.startPolling(async(data) => {
    console.log(data);
    
    vkcoin.updates.onTransfer((event) => {
        console.log(event);
    });
});

Или

vkcoin.updates.startWebHook({
    url: 'fakeman-cat.tk', // Тут ваша ссылка
});

vkcoin.updates.onTransfer((event) => {
    console.log(event);
});

event - Объект, который хранит в себе информацию о платеже:

ПараметрТипОписание
amountNumberКоличество коинов, которые послупили на счёт
fromIdNumberАйди плательщика
idNumberАйди платежа

Стоит отметить, что startWebHook получает только платежи по ссылке.

Я советую использовать startPolling

reconnect - Метод переподключения к серверу. Не принимает аргументов:

/* Тут случилась проблема с подключением */

vkcoin.updates.reconnect();

Возвращает true, если переподключение успешно

reconnectTimeout - Значение времени таймаута для переподключения, по умолчанию - 5000 (5 сек). Это значение можно изменить:

vkcoin.updates.reconnectTimeout = 10000; // Установил 10 скунд

Ссылки

Keywords

FAQs

Package last updated on 22 Apr 2019

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc