krypt0nn/vkapi

PHP library for working with VK API

3.2.1 2021-03-13 10:29 UTC

This package is auto-updated.

Last update: 2024-11-13 18:59:47 UTC


README

VKAPI - библиотека для упрощённой работы с API ВКонтакте на PHP 7.4

Установка

composer require krypt0nn/vkapi

Для ручной установки необходимо распаковать библиотеку в удобное вам место и подключить файл VKAPI.php

Примеры работы

Авторизация

<?php

use VKAPI\VK;

$API = new VK ('логин', 'пароль');

print_r ($API->users->get ([
    'user_ids' => 1
]));

print_r ($API->users->get ()); // Сам себя~

Авторизация с поддержкой 2ФА

<?php

use VKAPI\VK;

$API = new VK ('логин', 'пароль', function ()
{
    // Читаем и возвращаем 2ФА код, который ввёл пользователь (в консоль)
    return readline ('2fa code: ');
});

Авторизация с токеном доступа

<?php

use VKAPI\VK;

$API = new VK ('токен доступа');

LongPoll API

<?php

namespace VKAPI;

$API      = new VK ('токен доступа');
$longpoll = new LongPoll ($API);

# Бесконечно принимаем запросы от LongPoll API
while (true)
    if (sizeof ($updates = $longpoll->getUpdates ()) > 0)
        print_r ($updates);

Поддерживается работа как с пользователями, так и с сообществами*

Чат бот

<?php

namespace VKAPI;

$API      = new VK ('токен доступа');
$longpoll = new LongPoll ($API);

# Создаём объект реализации чат бота
$bot = new Bot ($longpoll, function ($message)
{
    echo $message['from_id'] .' | '. $message['text'] . PHP_EOL;
});

# И в бесконечном цикле обновляем его
while (true)
    $bot->update ();

Поддерживается работа как с пользователями, так и с сообществами*

Функционал сообществ

Callback API

<?php

namespace VKAPI;

$vk = new VK ('токен сообщества');
$callback = new Callback ($vk, 'строка подтверждения');

# Задаём обработчик события на запрос типа "message_new"
$callback->on ('message_new', function ($params) use ($vk)
{
    $vk->messages->send ([
        'message' => 'Привет! Мне показалось что ты сказал "'. $params['message']['text'] .'"',
        'peer_id' => $params['message']['from_id']
    ]);
});

# Выполняем обработку запроса к callback API
$callback->process ();

Клавиатура

<?php

namespace VKAPI;

use VKAPI\Buttons\Text;

# true - сделать ли клавиатуру встроенной в сообщение (inline клавиатура)
$keyboard = new Keyboard (new VK ('токен сообщества'), true);

# 0 - первый ряд
$keyboard->buttons->add (0, new Text ('Hello, World!'));

# 1 - второй ряд
$keyboard->buttons->add (1, (new Text ('Yes'))->setColor ('positive'));
$keyboard->buttons->add (1, (new Text ('No'))->setColor ('negative'));

// []   - дополнительные параметры message.send
// true - клавиатура будет отображена всего 1 раз
$keyboard->send ('peer id', 'Тесто', [], true);

Карусель

<?php

namespace VKAPI;

use VKAPI\Carousel\Text;

$carousel = new Carousel (new VK ('токен сообщества'));

# Создаём элемент для карусели
$element = new Text ('Привет, Мир!', 'Тестовый элемент карусели');
$element->buttons->add (new Buttons\Text ('Я просто кнопка~~'));

# Добавляем элемент в карусель
$caruosel->add ($element);

# Отправка карусели. Указать peer id получателя и сообщение для отправки
$carousel->send ('peer id', 'Привет! Я тут карусель сделал, не посмотришь?');

Для подробной документации рекомендуется обратиться к комментариям в коде

Автор: Подвирный Никита. Специально для Enfesto Studio Group