Skip to content

thearturca/vkplay-live-message-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VKplay live chat API client

Это пре-альфа версия, здесь не реализован механизм обновления токена, и не протестировано на продолжительном подключении к вебсокету. Возможны вылеты и ошибки. Баги присылать сюда https://github.com/thearturca/vkplay-live-message-client/issues

Описание

Эта библиотека поможет вам подключиться к чату канала стримера на стриминговой площадке live.vkplay.ru, и получать/отправлять сообщения с парсингом смайлов, создавать чат-ботов или клиенты для чатов. Чаты работают даже когда стримера нет в сети.

Авторизация

Для отправки сообщений нужно указать токен live.vkplay.ru, либо авторизационные данные для входа (логин и пароль). Так как ещё нет легального удобного способа получить токен, его нужно взять из localStorage вашего браузера, если вы уже залогинены. Находиться в поле auth. Лучше всего создать новый аккаунт для бота. Если вы знаете, как достать токен, сообщите мне в discord.

Discord для вопросов: thearturca

Установка

npm i vklive-message-client

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

Токен

const authToken: string = process.env.VKPL_OAUTH ?? "";

const client = new VKPLMessageClient({ auth: { token: authToken }, channels: [target], debugLog: true });
await client.connect();
await client.sendMessage("Connected to chat!", target);

client.on("message", async (context) => {
      if (context.message.text.startsWith("!command"))
            await context.sendMessage("Hello World");
});

Логин и Пароль

const login: string = process.env.VKPL_LOGIN ?? "";
const password: string = process.env.VKPL_PASSWORD ?? "";

const client = new VKPLMessageClient({ auth: { login, password }, channels: [target], debugLog: true });
await client.connect();
await client.sendMessage("Connected to chat!", target);

client.on("message", async (context) => {
      if (context.message.text.startsWith("!command"))
            await context.sendMessage("Hello World");
});

Фичи

Readonly режим

В режиме readonly нельзя отправлять сообщения, но можно получать их. Для активации этого режима нужно в поле auth написать "readonly" или не передавать параметр auth вообще.

const client = new VKPLMessageClient({ auth: "readonly", channels: [target], debugLog: true });
await client.connect(); // После подключения все сообщения будут выводится в консоль

Вставка ссылок

В боте есть возможность вставки ссылок в текст сообщения. Доступно 2 формата ссылок:

  • Прямая ссылка. Пример: https://github.com/thearturca/vkplay-live-message-client
  • Ссылка в стиле markdown. Пример: [Ссылка](https://github.com/thearturca/vkplay-live-message-client)

Ссылка в стиле markdown будет выглядеть следующим образом:

Ссылка

Пример вставки ссылки

const client = new VKPLMessageClient({ auth: { token: authToken }, channels: [target], debugLog: true });
await client.connect();

// отправки прямой ссылки
await client.sendMessage("Ссылка на мой гитхаб: https://github.com/thearturca/vkplay-live-message-client", target);

// отправки ссылки в стиле markdown
await client.sendMessage("[Ссылка на мой гитхаб](https://github.com/thearturca/vkplay-live-message-client)", target);