KOTOFF.NET
  • Главная
  • Пользователи
  • Контакты
  • Статистика
  • Правила
  • О нас
  • Вход / Регистрация

Карусели для бота ВК на библиотеке SimpleVK2 (ч2)

Статьи / PHP

Летом я писал статью по созданию каруселей для бота ВК, использовав при этом последнюю (третью) ветку SimpleVK. Сегодня же сделаем то же самое, но только на старой версии библиотеки. В особенности это может быть полезно тем, кто не имеет возможности переделывать своих старых ботов под новый релиз SimpleVK.


Для каруселей нам понадобится токен с доступом к сообщениям. В прошлой статье мы также ставили доступ к фотографиям, однако сейчас этого делать не придётся. Почему - потому что в текущей версии библиотеки, к сожалению, нет встроенной возможности для загрузки изображений. Да, это можно сделать самостоятельно, но сегодня не об этом. Я вручную залью фотки в группу, а далее скопирую их айди (из адресной строки):



Да, и библиотеку мне всё же пришлось немного доработать, ведь в дефолтной версии каруселей в ней не было. Это ни коем образом не повлияет на её функционал и принцип работы. Кастомную версию прикрепляю сразу, также полный архив будет в конце статьи:

simplevk-master.zip


Итак, теперь переходим к делу. Создаём php-файл, в котором сразу подключаем библиотечку и прописываем три константы:

<?php

require_once 'simplevk-master/autoload.php';


const TOKEN = 'токен';
const API_VERSION = '5.131';
const CONFIRM_KEY = 'ключ подтверждения callback-сервера';


Создаём экземпляр класса vk_api, инициализируем переменные:

$vk = \DigitalStar\vk_api\vk_api::create( TOKEN, API_VERSION )->setConfirm( CONFIRM_KEY );
$vk->initVars( $peer_id, $message, $payload, $user_id, $type, $data );


Добавляем конструкцию для обработки команды:

if ( $type == 'message_new' )
{


    if ( $message == '/' )
    {

        // Тут продолжим делать карусели

    }


}


В класс vk_api я добавил метод carousel() для инициализации нового элемента карусели, который возвращает экземпляр также добавленного класса Carousel:

public function carousel()
{
    $config = [];
    $this->config['carousel'][] = &$config;

    return Carousel::create( $config );
}


А вот класс Carousel переехал из третьей ветки без существенных изменений, поэтому дальше структура кода будет такой же, как и в прошлый раз. В качестве образца сделаю карусель с некими товарами. Например, с телефонами. Выглядеть это будет +/- так:

$vk->carousel()
    // ->action( 'https://yandex.ru' ) // Ссылка, на которую перекинет пользователя при клике
    ->title( 'iPhone 14 Pro Max 114.999 ₽' ) // Заголовок элемента карусели
    ->description( 'Три камеры, экран диагональю 6,7 дюйма, <...>, с Dynamic Island' ) // Описание элемента карусели
    ->img( '-214118756_457239032' ) // Изображение
    ->kbd( [ $vk->buttonOpenLink( 'https://kotoff.net', 'Купить' ) ] ); // Кнопка/кнопки


Чтобы добавить в карусель ещё несколько элементов - дублируем этот кусок кода нужное количество раз:

$vk->carousel()
    // ->action( 'https://yandex.ru' )
    ->title( 'iPhone 14 Pro 109.999 ₽' )
    ->description( 'Три камеры, экран диагональю 6,1 дюйма, <...>, с Dynamic Island' )
    ->img( '-214118756_457239031' )
    ->kbd( [ $vk->buttonOpenLink( 'https://kotoff.net', 'Купить' ) ] );

$vk->carousel()
    // ->action( 'https://yandex.ru' )
    ->title( 'iPhone 14 Plus 94.999 ₽' )
    ->description( 'Две камеры, экран диагональю 6,7 дюйма, <...>, без Dynamic Island' )
    ->img( '-214118756_457239030' )
    ->kbd( [ $vk->buttonOpenLink( 'https://kotoff.net', 'Купить' ) ] );

$vk->carousel()
    // ->action( 'https://yandex.ru' )
    ->title( 'iPhone 14 84.999 ₽' )
    ->description( 'Две камеры, экран диагональю 6,1 дюйма, <...> без Dynamic Island' )
    ->img( '-214118756_457239029' )
    ->kbd( [ $vk->buttonOpenLink( 'https://kotoff.net', 'Купить' ) ] );


Осталось только отправить карусель пользователю. Для этого используем добавленный метод sendCarousel():

$vk->sendCarousel( $peer_id, 'Карусель' );


Выглядит метод, кстати, вот так:

public function sendCarousel( $peer_id, $message, $params = [] )
{
    $carousel = $this->generateCarousel();
    
    return $this->request( 'messages.send',
        [ 'message' => $message, 'peer_id' => $peer_id, 'template' => $carousel ] + $params );
}


Теперь проверим, как работает наш мини-бот:


Весь код:

<?php

require_once 'simplevk-master/autoload.php';


const TOKEN = 'токен';
const API_VERSION = '5.131';
const CONFIRM_KEY = 'ключ подтверждения callback-сервера';


$vk = \DigitalStar\vk_api\vk_api::create( TOKEN, API_VERSION )->setConfirm( CONFIRM_KEY );
$vk->initVars( $peer_id, $message, $payload, $user_id, $type, $data );



if ( $type == 'message_new' )
{


    if ( $message == '/' )
    {

        $vk->carousel()
            // ->action( 'https://yandex.ru' ) // Ссылка, на которую перекинет пользователя при клике
            ->title( 'iPhone 14 Pro Max 114.999 ₽' ) // Заголовок жлемента карусели
            ->description( 'Три камеры, экран диагональю 6,7 дюйма, <...>, с Dynamic Island' ) // Описание элемента карусели
            ->img( '-214118756_457239032' ) // Изоюражение
            ->kbd( [ $vk->buttonOpenLink( 'https://kotoff.net', 'Купить' ) ] ); // Кнопка/кнопки

        $vk->carousel()
            // ->action( 'https://yandex.ru' )
            ->title( 'iPhone 14 Pro 109.999 ₽' )
            ->description( 'Три камеры, экран диагональю 6,1 дюйма, <...>, с Dynamic Island' )
            ->img( '-214118756_457239031' )
            ->kbd( [ $vk->buttonOpenLink( 'https://kotoff.net', 'Купить' ) ] );

        $vk->carousel()
            // ->action( 'https://yandex.ru' )
            ->title( 'iPhone 14 Plus 94.999 ₽' )
            ->description( 'Две камеры, экран диагональю 6,7 дюйма, <...>, без Dynamic Island' )
            ->img( '-214118756_457239030' )
            ->kbd( [ $vk->buttonOpenLink( 'https://kotoff.net', 'Купить' ) ] );

        $vk->carousel()
            // ->action( 'https://yandex.ru' )
            ->title( 'iPhone 14 84.999 ₽' )
            ->description( 'Две камеры, экран диагональю 6,1 дюйма, <...> без Dynamic Island' )
            ->img( '-214118756_457239029' )
            ->kbd( [ $vk->buttonOpenLink( 'https://kotoff.net', 'Купить' ) ] );


        $vk->sendCarousel( $peer_id, 'Карусель' );

    }


}


Надеюсь, было полезно 😏 

Архив с исходниками:

bot.zip

  • 5id15
  • 14.09.2022
  • 1 940
  • 3
Карусели для бота ВК
Карусели для бота ВК
24-07-2022, 15:48, PHP
Создаем бота VK на библиотеке SimpleVK 3.x [Часть 1]
Создаем бота VK на библиотеке SimpleVK 3.x [Часть 1]
26-07-2022, 17:01, PHP
Callback-кнопки для бота ВК
Callback-кнопки для бота ВК
22-07-2022, 20:20, PHP
BOT VK — Использование хранилища (Store) на библиотеке SimpleVK 3.x [Часть 3]
BOT VK — Использование хранилища (Store) на библиотеке SimpleVK 3.x [Часть 3]
22-08-2022, 00:49, PHP
BOT VK — Скрипт бана и мута пользователей в беседе (PHP)
BOT VK — Скрипт бана и мута пользователей в беседе (PHP)
29-06-2022, 18:06, PHP
  1. Марк Черникин

    Марк Черникин@Марк Черникин 25 января 2023 18:51

    Спасибо за статью! Не подскажите, как несколько кнопок добавить?

    1. Сергей Котов

      Сергей Котов@Сергей Котов 26 января 2023 01:56

      Вроде только 1 можно, уже точно не помню

  2. Гость Алексей

    Гость Алексей Гость Сегодня, 16:55

    а что скопировать мне и заменить в этой версии? у меня бот уже функцианальный там vk_api.php и index.php я так понял надо часть кода в vk.api вписать для вызова в функцию а исполнить в index.php?

{login}

Твой комментарий..

Заказывай!
Разработка ботов на заказ, любой сложности, обращаться:
 VK KOTOFF.net - Сообщество, в личные сообщения или по контактам указанным там 
 mail: [email protected]

Рекламный блок
  • Новости
  • Блог
  • Игры
  • Обновления
  • Программы
  • Статьи
    • PHP
    • Python
  • Дизайн
    • PSD исходники
  • DLE
    • Шаблоны
      • Игровые
    • Модули
    • Хаки
  • Магазин
Комментарии
Карусели для бота ВК на библиотеке SimpleVK2 (ч2)
а что скопировать мне и заменить в этой версии? у меня бот уже функцианальный там vk_api.php и
Карусели для бота ВК
спасибо большое)))
Callback-кнопки для бота ВК
Прекрасные статьи. Думаю, я надолго на этом сайте. :) Полезность статьи хорошо на поведенческие
Карусели для бота ВК на библиотеке SimpleVK2 (ч2)
Вроде только 1 можно, уже точно не помню
Cкрипт добавление возможных друзей Вконтакте, законная накрутка друзей без блокировок!
Бро, скинь по братски, и за отписку от не принявших знаешь? 😄
Все комментарии..
Полный список последних комментариев
Лучшие новости
Всего публикаций: 79
Добавлено за сутки: +0
Записей в блоге: 1
Добавлено за сутки: +0
Комментариев: 840
Добавлено за сутки: +0
Пользователей: 3873
Добавлено за сутки: +1
Полная статистика..
Подробная статистика сайта
Loading...

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter

Полезные ссылки
  • О проекте
  • Наши контакты
  • Администрация
  • Рекламные материалы
  • Идеи и предложения
  • Ответы на вопросы
Информация
  • Условия сделки
  • Способы оплаты
  • Поддержка / F.A.Q
  • Онлайн документация
  • Статистика сайта
  • Список пользователей
Услуги/Работа
  • Разработка ботов ВК
  • Обновление проекта
  • Консультация/поддержка
KOTOFF.net

Copyright © Footer 2019-2022. All right reserved.
KOTOFF.net - Уроки по PHP, SQL, IT новости
Быстрый вход

Используйте социальные сети для быстрой регистрации и авторизации.

Google
ВКонтакте
Яндекс
Mail.ru
Создать аккаунт / Регистрация
Авторизация

Я забыл свой пароль