Skip to content
/ vk.sh Public

Набор утилит для работы с vk api в shell-скриптах

License

Notifications You must be signed in to change notification settings

bulatovv/vk.sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vk.sh

Набор утилит для работы с vk api в shell-скриптах. Библиотека реализована на чистом POSIX-shell.

📖 Содержание

🚀 Пример

vk_bots_long_poll | while read -r event; do (
    on_event "message_new" && (
        export_json "$(echo "$event" | jq -rc '{message: .object.message}')"
        vk_api messages.send             \
            --peer_id "$message_peer_id" \
            --random_id 0                \
            --message "Hello, world!" 
    )
) & done

✅ Реализовано

📖 Документация

⚙️ Установка

git clone https://github.com/bulatovv/vk.sh.git

Также требуется установить следующие зависимости:

  • curl
  • jq

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

Перед началом использования необходимо установить переменные среды:

  • VK_TOKEN - токен доступа к API ВКонтакте
  • VERSION - версия API ВКонтакте
  • GROUP_ID - только для работы с BotsLongPoll, идентификатор группы ВКонтакте
VK_TOKEN="your_token"
VERSION="5.131"
GROUP_ID="your_group_id"

Затем подключить необходимые модули:

. vk.sh/vk_api.sh
. vk.sh/utils.sh
. vk.sh/filters.sh

📦 Модули

🔨 Модуль vk_api.sh

Содержит функции для работы с API ВКонтакте.

vk_api

Выполнить запрос к API ВКонтакте.

vk_api METHOD_NAME --ARG VALUE # or
vk_api METHOD_NAME --ARG=VALUE # or
vk_api METHOD_NAME ARG=VALUE

Пример:

vk_api users.get user_ids=1

vk_bots_long_poll

Слушать события BotsLongPoll сервера.

Пример:

vk_bots_long_poll | while read -r event; do
    echo "$event"
done

🔨 Модуль utils.sh

Содержит вспомогательные функции.

export_json

Экспортировать переменные из json-строки в текущую среду. Формат:

{ "key": "value" }, // export key=value
{ "key": { "subkey": "value" } } // export key_subkey=value
{ "key": [ "value1", "value2" ] } // export key_0=value1; export key_1=value2

Полезно для получения данных из событий long poll сервера, чтобы не парсить json-строку вручную. Пример:

vk_bots_long_poll | while read -r event; do
    export_json "$event"
    echo "$object_message_text"
done

🔨 Модуль filters.sh

Содержит функции для фильтрации событий long poll сервера.

Фильтры возвращают exit-code 0 в случае успеха и 1 в случае неудачи. Можно использовать их в условных конструкциях и с операторами && и ||.

Note Встроенные фильтры завязаны на использование переменной среды event для получения текущего события

on_event

Проверить, является ли событие событием с указанным типом.

Пример:

vk_bots_long_poll | while read -r event; do
    on_event "message_new" && (
        echo "New message!"
    )
done

About

Набор утилит для работы с vk api в shell-скриптах

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages