Всех приветствую!
Сегодня Вы сможете увидеть мою первую библиотеку для VK API. Сразу говорю, что в этой библиотеки нету ничего эксклюзивного.
Данная библиотека не только будет полезна в написание скриптов для создания чат-ботов, но и поможет новичкам (каким я и являюсь), которые ничего не понимают в API.
Хочу сразу подметить, что в моей библиотеки используются функции для HTTP запросов, которые я увидел у @neverlane (https://www.blast.hk/threads/57120/). Спасибо, ег двачев.
Установка:
Файл "VK_API.lua" перенести в папку "lib" в папке "moonloader" (Не путайте с "modloader").
Библиотека требует Effil!
Все файлы из скаченного архива перенести в папку "lib" в папке "moonloader" (Не путайте с "modloader").
Функции:
Сегодня Вы сможете увидеть мою первую библиотеку для VK API. Сразу говорю, что в этой библиотеки нету ничего эксклюзивного.
Данная библиотека не только будет полезна в написание скриптов для создания чат-ботов, но и поможет новичкам (каким я и являюсь), которые ничего не понимают в API.
Хочу сразу подметить, что в моей библиотеки используются функции для HTTP запросов, которые я увидел у @neverlane (https://www.blast.hk/threads/57120/). Спасибо, ег двачев.
Установка:
Файл "VK_API.lua" перенести в папку "lib" в папке "moonloader" (Не путайте с "modloader").
Библиотека требует Effil!
Все файлы из скаченного архива перенести в папку "lib" в папке "moonloader" (Не путайте с "modloader").
Функции:
Функция | Описание | Аргументы | ||||
---|---|---|---|---|---|---|
botAuthorization(group, token, version) | Функция записывает данные о Вашем сообществе в переменную для дальнейшего использования. Она должна быть вызвана до остальных функций. Можно вызвать только один раз. | group (string): Айди Вашей группы VK. token (string): Токен Вашей группы VK. version (string): Версия VK API. | ||||
createRequest(method, parameters) | Функция для получения ссылки на метод. | method (string): Название метода. Пример: users.get. parameters (table): Параметры запроса (токен и версию API указывать не нужно). Пример:
| ||||
sendRequest(url, callback = NULL) | Функция для отправки метода в VK. | url (string): Ссылка для API (можно удобно получать через createRequest). callback (function): Функция для получения ответа от сервера (необязательно (применение ищите в примере)). | ||||
getLongPollServer(callback = NULL) | Функция получает параметры из метода getLongPollServer для получения сообщений из бесед. Можно вызвать только один раз. | callback (function): Функция для получения параметров LongPoll (необязательно (применение ищите в примере)). | ||||
sendMessage(text, chat, buttons = NULL, callback = NULL) | Отправляет сообщение в указанный чат. К сообщению можно прикрепить клавиатуру. | text (string): Текст сообщения. chat (string): Айди чата. buttons (table): Клавиатура в чате (необязательно). callback (function): Функция для получения ответа от сервера (необязательно (применение ищите в примере)). | ||||
getMessage(array) | Функция callback, которая срабатывает каждый раз, когда приходит новое сообщение. | array (table): Возвращаемое значение. |
Пример:
Lua:
-->> Подключаем библиотеку
local VK = require('VK_API')
-->> Создаём переменные
local token = 'Токен'
local group = 'Айди Группы'
local chat = 'Айди Чата'
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
-->> Запускаем бота
VK.botAuthorization(group, token, '5.131')
-->> Отправляем тестовое сообщение в чат
VK.sendMessage('Test', chat, nil, function(result)
print(result)
end)
-->> Получаем ссылку на метод
local url = VK.createRequest('users.get', {['user_ids'] = 324119075})
-->> Отправляем ссылку в ВК
VK.sendRequest(url, function(result)
-->> Выводим ИД пользователя
print(decodeJson(result).response[1].id)
end)
-->> Запускаем получение сообщений из чатов
VK.getLongPollServer(function(resolve)
print(resolve)
end)
wait(-1)
end
-->> Создаем callback функцию для получения сообщений
function VK.getMessage(v)
-->> Получаем текст сообщения
local text = u8:decode(v.object.message.text)
-->> Получаем Айди пользователя, который написал сообщение
local from_id = v.object.message.from_id
-->> Получаем Айди чата, в котором написано сообщение
local peer_id = v.object.message.peer_id
-->> Отправляем пользователю его Айди + Отправляем ему клавиатуру
VK.sendMessage('Твой ИД: ' .. from_id, chat, button())
end
-->> Функция с массивом клавиатуры
function button()
local keyboard = {
-->> Клавиатура в самом сообщение
['inline'] = true,
-->> Клавиатура под инпутом текста
['one_time'] = false,
-->> Эти два аргумента не могут быть использованы вместе, выбирайте один из них, а второй удаляйте
['buttons'] = {
-->> 1 ряд
{
-->> 1 кнопка
{
['action'] = {
['type'] = 'text',
['label'] = 'Пойти гулять',
['payload'] = encodeJson({['button'] = 'street'})
-->> payload нужен для того, чтобы данная таблица передалась в массив с сообщением пользователя (если нужна будет помощь, то пишите в тему)
},
['color'] = 'positive'
},
-->> 2 кнопка
{
['action'] = {
['type'] = 'text',
['label'] = 'Вернуться домой',
['payload'] = encodeJson({['button'] = 'home'})
},
['color'] = 'secondary'
},
},
-->> 2 ряд
{
-->> 1 кнопка
{
['action'] = {
['type'] = 'text',
['label'] = 'Сохранить фотку тянки',
['payload'] = encodeJson({['button'] = 'save'})
},
['color'] = 'primary'
},
-->> 2 кнопка
{
['action'] = {
['type'] = 'text',
['label'] = 'Удалить фотку тянки',
['payload'] = encodeJson({['button'] = 'delete'})
},
['color'] = 'negative'
}
}
}
}
return keyboard
end
Фотографии клавиатуры:
Настройки сообщества:
Вложения
Последнее редактирование: