Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/digitalstars/simplevk-php

SimpleVK это PHP библиотека для быстрой разработки ботов для VK | vk api php class bot sdk library client framework longpoll callback streaming auth
https://github.com/digitalstars/simplevk-php

api php vk

Last synced: about 21 hours ago
JSON representation

SimpleVK это PHP библиотека для быстрой разработки ботов для VK | vk api php class bot sdk library client framework longpoll callback streaming auth

Awesome Lists containing this project

README

        


SimpleVK logo


php version
VK api version
Latest Stable Version
VK api version
License

# SimpleVK 2
[Документация SimpleVK 2](https://simplevk.scripthub.ru/v2/guide/guide.html) | [Документация SimpleVK 3](https://simplevk.scripthub.ru/v3/install/who_simplevk.html) |
--- | --- |

[Беседа VK](https://vk.me/join/AJQ1dzQRUQxtfd7zSm4STOmt) | [Telegram](https://t.me/vk_api_chat) | [Discord](https://discord.gg/RFqAWRj)
--- | --- | --- |

[Блог со статьями](https://scripthub.ru) | [Разработка ботов на заказ](https://vk.me/scripthub)
--- | --- |
### Оглавление
- [Обзор SimpleVK](#SimpleVK)
- [Подключение](#Подключение)
- [Примеры использования](#Примеры-использования)
- [План развития проекта](#План-развития-проекта)
- [Помощь проекту](#Помощь-проекту)
### Почему SimpleVK?

Для создания бота потребуется минимум кода, за счёт реализации большинства методов vk api в виде удобных функций.
Также есть готовые модули, которые облегчают разработку:
* Рассылка сообщений
* Обработка команд
* Работа с кнопками
### Функционал
В библиотеке поддерживается:
* Callback API
* User Long Poll API
* Bots Long Poll API
* Execute
* VKCoin API
* Создание ботов на пользовательских аккаунтах
* Работа с голосовыми сообщениями и документами

## Подключение
### Используя composer
```
composer require digitalstars/simplevk
```
```php
require_once "vendor/autoload.php"; //Подключаем библиотеку
```
### Вручную
1. Скачать последний релиз
2. Подключить autoload.php. Вот так будет происходить подключение, если ваш скрипт находится в той же папке, что и папка simplevk-master
```php
require_once "simplevk-master/autoload.php"; //Подключаем библиотеку
```

## Проверка готовности сервера
Чтобы убедится, что ваш сервер готов к работе с simplevk, необходимо создать и запустить следующий скрипт:
```php
require_once 'vendor/autoload.php';
\DigitalStar\vk_api\Diagnostics::run();
```
> Если вы делаете longpoll бота, то запускайте диагностику через консоль
> Если вы делаете callback бота, то запускайте диагностику через браузер

### Примерный вывод диагностики:



## Примеры использования
Больше примеров есть на [сайте с документацией](https://simplevk.scripthub.ru)
Для удобства в каждого бота можно добавлять следущие константы:
```php
const VK_KEY = ''; //токен сообщества или пользователя
const CONFIRM_STR = ''; //ключ авторизации сообщества, который вы получили
const VERSION = '5.101'; //ваша версия используемого api
```
#### Минимальный Callback бот для бесед и сообщества
```php
require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
$vk = vk_api::create(VK_KEY, VERSION)->setConfirm(CONFIRM_STR);
$data = $vk->initVars($id, $message, $payload, $user_id, $type); //инициализация переменных
if($type == 'message_new')
$vk->reply($message);
```
#### Простой Callback бот для бесед и сообщества
```php
require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
$vk = vk_api::create(VK_KEY, VERSION)->setConfirm(CONFIRM_STR);
$vk->debug();
$data = $vk->initVars($id, $message, $payload, $user_id, $type); //инициализация переменных
$info_btn = $vk->buttonText('Информация', 'blue', ['command' => 'info']); //создание кнопки
if ($payload) {
if($payload['command'] == 'info')
$vk->reply('Тебя зовут %a_full%'); //отвечает пользователю или в беседу
} else
$vk->sendButton($id, 'Видишь кнопку? Нажми на нее!', [[$info_btn]]); //отправляем клавиатуру с сообщением
```
#### Простой LongPoll бот для юзера
```php
require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\LongPoll;
$vk = vk_api::create('login', 'password', VERSION);//или используйте токен вместо лог/пас
$vk = new LongPoll($vk);
$vk->listen(function()use($vk){ //longpoll для пользователя
$vk->on('message_new', function($data)use($vk) { //обработка входящих сообщений
$vk->initVars($id, $message, $payload, $user_id, $type);
$vk->reply($message);
});
});
```
#### Простой LongPoll бот для сообщества
```php
require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\LongPoll;
$vk = vk_api::create(VK_KEY, '5.101');
$vk = new LongPoll($vk);
$vk->listen(function($data)use($vk){ //в $data содержится все данные
$vk->initVars($id, $message, $payload, $user_id, $type);
$vk->reply($message);
});
```
#### Callback + Execute
Используется, когда callback скрипт во время выполнения много раз обращается к api, а вам нужно экономить запросы, чтобы не привышать лимит(высоконагруженные боты)
```php
require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\Execute;
$vk = vk_api::create(VK_KEY, VERSION)->setConfirm(CONFIRM_STR);
$vk = new Execute($vk);
$vk->debug();
$data = $vk->initVars($id, $message, $payload, $user_id, $type); //инициализация переменных
$vk->reply($message); //отвечает пользователю или в беседу
```
#### LongPoll + Execute
Лучшая связка для высоконагруженных ботов. Но если вы делаете высоконагруженного бота, лучше посмотрите в сторону NodeJS, он справляется с этим намного лучше за счет асинхронности и многопоточности из коробки.
```php
require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\LongPoll;
use DigitalStar\vk_api\Execute;
$vk = vk_api::create(VK_KEY, '5.95');
$vk = new Execute($vk);
$vk = new LongPoll($vk);
$vk->listen(function($data)use($vk){ //в $data содержится все данные события, можно убрать, если не нужен
$vk->initVars($id, $message, $payload, $user_id, $type); //инициализация переменных
$vk->reply($message);
});
```
## План развития проекта
- метод для проверки секретного слова
- streaming api
- модуль для удобной обработки комманд в боте
- модуль для удобного написания многоуровневых ботов с кнопками
- возможность в sendImage отдавать ссылку на картинку в интернете для отправки
- метод проверки секретного слова
- более удобная документация на сайте
- Полностью переписать библиотеку на 3.0
- Мобильное приложение с копией сайта, для оффлайн просмота

#### Далекое будущее (до 1 года)
- работа с audio
- работа с историями
- модуль работы с основными платежными системами
- динамические обложки для сообщества(возможно)

## Помощь проекту
- Яндекс.Деньги - [money.yandex.ru/to/410014638432302]()
- Дебетовая карта - 2202201272652211
- Также вы можете помочь проекту `Pull Request`'ом