Как стать автором
Обновить
1647.07
Timeweb Cloud
То самое облако

Как создать мини-приложение VK Mini Apps: пошаговое руководство

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров276

Мини-приложения ВКонтакте (VK Mini Apps) открывают возможность предоставить пользователям функционал от простейших игр и квизов до сложных сервисов бронирования или интернет-магазинов, не выходя из приложения VK. Благодаря инструментам, которые предоставляет платформа, процесс создания мини-приложения ВКонтакте достаточно прозрачен даже для начинающих. 

Ниже мы пошагово разберем все основные этапы разработки VK Mini Apps: от выбора инструментов до публикации в каталоге приложений внутри ВКонтакте.

❯ Что такое VK Mini Apps

VK Mini Apps — это небольшие веб-приложения, которые работают внутри экосистемы ВКонтакте. Пользователи могут запускать их из мобильного приложения VK или в веб-версии, не устанавливая ничего дополнительно. У мини-приложений есть доступ к основным возможностям VK: они могут получать данные о профиле пользователя, отправлять уведомления, создавать посты на стене и многое другое — в зависимости от набора разрешений и политики социальной сети.

Положительные характеристики VK Mini Apps:

  • Запуск внутри ВКонтакте. Не нужно отдельно скачивать приложение из магазина (Google Play, App Store), всё сразу доступно в VK.

  • Упрощенная аутентификация. С помощью VK Bridge можно использовать токены и разрешения ВКонтакте для получения данных о пользователе.

  • Удобство для разработчиков. Существует множество готовых инструментов, библиотек и документации, которые помогают быстро создать мини-приложение и привязать его к функциям социальной сети.

  • Единая среда. Приложение упрощает взаимоотношения с пользователями (опросы, уведомления, оформление платежных операций через VK Pay и т.п.).

❯ Как создать мини-приложение в ВК

Создание мини-приложения VK Mini Apps включает в себя несколько ключевых шагов. Для начала важно понять общий процесс, определить нужные вам технологии и инструменты.

Основные этапы разработки VK Mini Apps

  1. Определение концепции и функционала. Для какого сценария создается мини-приложение, какие задачи будет решать, какую пользу принесет пользователям.

  2. Настройка приложения в кабинете разработчика. ВКонтакте предоставляет панель разработчика (Developer Dashboard), где вы регистрируете новое приложение, задаете базовые настройки, указываете адреса серверов, домен и прочее.

  3. Выбор стека технологий. Чаще всего для фронтенд-части используют React или Vue, а для взаимодействия с VK Bridge — JavaScript (TypeScript). Серверная часть может быть написана на любом языке (Node.js, Python, PHP, Go), главное — обеспечить корректные запросы к VK API.

  4. Разработка приложения. На этом этапе происходит реализация интерфейса, логики взаимодействия с пользователем, интеграция с VK API, а также добавляются дополнительные сервисы (базы данных, платежные системы и пр.).

  5. Тестирование. Приложение нужно проверить на разных устройствах и под разными версиями операционных систем, а также убедиться, что все функции работают корректно внутри VK.

  6. Публикация. После успешного теста можно загружать мини-приложение в официальный каталог или распространять среди пользователей ВКонтакте.

Конструкторы для создания mini apps

Если вы не хотите глубоко погружаться в написание кода, можно воспользоваться специализированными конструкторами. Они позволяют «накидать» интерфейс перетаскиванием готовых блоков и компонентов, а интеграция с VK Bridge настраивается легко. Такие решения значительно ускоряют процесс, но ограничивают гибкость. 

Однако, если задачи требуют сложной бизнес-логики или нестандартной интеграции, такой подход быстро упрется в рамки возможностей конструктора. Поэтому в большинстве случаев полноценная разработка с нуля или с готовыми шаблонами (но на открытой кодовой базе) — лучший вариант.

«Приложения без кода» от ВКонтакте

Внутри VK есть собственный конструктор приложений, который умеет показывать каталог товаров и собирать заявки от пользователей. Использовать этот вид приложений можно бесплатно, не потребуется даже использование облачного сервера.

Подробнее об этом в документации VK.

Подключение любого конструктора (Craftum, Tilda и другие) к VK Bridge

Можно создать мини-приложение ВКонтакте на базе сайта, собранного в любом конструкторе. Вот как это сделать:

  1. Сделайте сайт и подключите VK Bridge

Создайте сайт в конструкторе. Добавьте страницы, текст, изображения — они станут интерфейсом вашего мини-приложения.

Чтобы сайт мог обмениваться данными с ВКонтакте, подключите библиотеку VK Bridge:

  • Вставьте код библиотеки на каждую страницу, где есть взаимодействие с платформой.

  • На первой странице вызовите событие VKWebAppInit для инициализации соединения. 

Важно:

  • Сайт должен работать по HTTPS, иначе мини-приложение не загрузится. Большинство конструкторов предоставляет SSL-сертификат бесплатно. 

  • Ваш сервер не должен запрещать загрузку страниц в <iframe> (уберите заголовок X-Frame-Options).

  • Учтите, что мини-приложение открывается во фрейме или WebView с портретной ориентацией и ограниченной шириной. Используйте адаптивную верстку.

Пример кода подключения VK Bridge

<script>
  function initBridge() {
    vkBridge.send('VKWebAppInit');
  }
</script>
<script src="https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js" onload="initBridge()"></script>

На других страницах подключайте библиотеку так:

<script src="https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js"></script>
  1. Зарегистрируйте мини-приложение в ВКонтакте.

Подробная инструкция в документации VK.

В настройках укажите URL сайта. Включите размещение, чтобы пользователи могли запускать приложение по ссылке.

После этого мини-приложение будет доступно. Используйте конструктор для внесения изменений в мини-приложение. 

❯ Разработка VK Mini Apps с нуля

Разберем, как с нуля написать собственное мини-приложение и какой стек технологий для этого выбрать.

Выбор технологий

Поскольку VK Mini Apps — это, по сути, фронтенд-приложения, которые загружаются в iFrame или WebView ВКонтакте, ваш стек, скорее всего, будет таким:

  1. Фронтенд:

    • React — популярный фреймворк для создания интерфейсов. Помогает гибко контролировать состояние приложения, использовать компоненты и переиспользовать код.

    • VKUI — библиотека готовых React-компонентов, стилизованных под дизайн ВКонтакте. Позволяет быстро сделать приложение, которое выглядит «родным» внутри VK.

    • VK Bridge — набор функций (SDK) для обращения к нативным методам ВКонтакте. С его помощью вы можете получать данные пользователя, отправлять уведомления, обращаться к API соцсети и т.д.

  2. Бэкенд:

    • Node.js или Python (с фреймворками FastAPI, Django, Flask). Всё зависит от личных предпочтений и специфики проекта: главное — поднять REST API, который будет обмениваться данными с фронтендом и при необходимости обращаться к сторонним сервисам.

    • API должен уметь обрабатывать запросы от вашего фронтенда (получать/отдавать данные, сохранять информацию в базе, проводить авторизацию).

  3. Инфраструктура:

    • Docker — для контейнеризации всех необходимых сервисов (бэкенд, фронтенд, базы данных). С Docker проще разворачивать приложение на любом сервере, а вместе с docker-compose вы можете объединить всё в одном конфигурационном файле.

    • Nginx — в роли прокси-сервера (reverse proxy) для маршрутизации запросов. Он будет принимать HTTPS-трафик и перенаправлять его в ваши контейнеры фронтенда и бэкенда.

    • SSL-сертификаты — обязательное требование: мини-приложения должны открываться по HTTPS, иначе они не заработают внутри мобильного клиента ВКонтакте (да и в большинстве браузеров без HTTPS всё чаще возможны ограничения).

Подключение VK Bridge и взаимодействие с API

VK Bridge — это «мост» между вашим веб-приложением и внутренней платформой ВКонтакте. С помощью Bridge вы можете запрашивать у пользователя доступ к различным данным, отправлять уведомления, работать с геолокацией, хранить какие-то настройки внутри соцсети, а также интегрировать ботов сообществ.

Шаг 1. Установка зависимостей

Вам понадобятся пакеты @vkontakte/vk-bridge и @vkontakte/vkui. Установите их через npm (или yarn):

npm install @vkontakte/vk-bridge @vkontakte/vkui

Шаг 2. Инициализация в index.js

Чтобы мини-приложение корректно инициализировалось во ВКонтакте, нужно отправить событие VKWebAppInit после загрузки приложения:

import bridge from '@vkontakte/vk-bridge';
// Инициализация VK Bridge
bridge.send('VKWebAppInit');

Шаг 3. Получение данных пользователя

Например, чтобы узнать ID пользователя, имя, фамилию и получить ссылку на аватарку, используйте событие VKWebAppGetUserInfo. Bridge вернет Promise с нужной информацией:

bridge.send('VKWebAppGetUserInfo')
  .then(data => {
	console.log(data.id);     	// ID пользователя
	console.log(data.first_name); // Имя
	console.log(data.photo_200);  // Аватарка 200x200
  })
  .catch(error => {
	console.log(error);
  });

Шаг 4. Интеграция с бэкендом

Далеко не все задачи можно решить только средствами фронтенда. Часто вам нужен сервер для хранения пользовательских данных, авторизации, обработок платежей или сложной логики. Для общения с вашим бэкендом обычно используется HTTP-запрос по REST или GraphQL.

Ниже пример настройки axios для запросов к API:

// api.js
import axios from 'axios';

// Определяем базовый URL в зависимости от окружения
export const BASE_URL = process.env.NODE_ENV === 'development'
  ? 'http://localhost:8000'
  : '/api';

const api = axios.create({
  baseURL: BASE_URL,
});

// Пример функции для получения данных
export const getData = async () => {
  try {
	const response = await api.get('/endpoint');
	return response.data;
  } catch (error) {
	console.error('Error:', error);
	throw error;
  }
};

В реальном проекте точно так же можно добавить любую другую логику: авторизацию, запись в базу данных, загрузку файлов и т.д.

Настройка интерфейса mini app

Когда готова логика приложения, важно уделить внимание интерфейсу. Пользователи ВК привыкли к определенному стилю и UX. Именно поэтому VKUI будет лучшим выбором: он предлагает готовые компоненты — шапку, кнопки, списки, попапы. Всё стилизовано под дизайн VK.

Шаг 1. Базовая структура

Создадим главный компонент App с использованием библиотек AppRoot, SplitLayout, View, Panel и т.д.:

import React from 'react';
import {
  AppRoot,
  SplitLayout,
  SplitCol,
  View,
  Panel,
  PanelHeader,
  Group,
  Div
} from '@vkontakte/vkui';
import '@vkontakte/vkui/dist/vkui.css';

const App = () => {
  return (
	<AppRoot>
  	<SplitLayout>
    	<SplitCol>
      	<View activePanel="main">
        	<Panel id="main">
          	<PanelHeader>Название приложения</PanelHeader>
          	<Group>
            	<Div>Содержимое приложения</Div>
          	</Group>
        	</Panel>
      	</View>
    	</SplitCol>
  	</SplitLayout>
	</AppRoot>
  );
};

Шаг 2. Адаптивность интерфейса

Чтобы интерфейс корректно адаптировался под мобильные и десктопные устройства, используйте провайдеры ConfigProvider и AdaptivityProvider:

import { ConfigProvider, AdaptivityProvider } from '@vkontakte/vkui';

const RootComponent = () => (
  <ConfigProvider>
	<AdaptivityProvider>
  	<App />
	</AdaptivityProvider>
  </ConfigProvider>
);

Шаг 3. Навигация

В VKUI механика навигации строится вокруг компонентов View и Panel. Переключение между экранами (панелями) происходит путем изменения состояния activePanel. Пример:

import React, { useState } from 'react';
import { View, Panel, PanelHeader, Button } from '@vkontakte/vkui';

const ExampleView = () => {
  const [activePanel, setActivePanel] = useState('main');

  return (
	<View activePanel={activePanel}>
  	<Panel id="main">
    	<PanelHeader>Главная</PanelHeader>
    	<Button onClick={() => setActivePanel('second')}>
      	На вторую панель
    	</Button>
  	</Panel>

  	<Panel id="second">
    	<PanelHeader>Вторая панель</PanelHeader>
    	<Button onClick={() => setActivePanel('main')}>
      	Назад
    	</Button>
  	</Panel>
	</View>
  );
};

Так вы можете создавать множество панелей и переходить между ними, формируя многостраничную логику внутри одного приложения.

Пример приложения VK Mini Apps

Мы сделали небольшой пример приложения для VK Mini Apps — Матрица Эйзенхауэра. Этим методом тайм-менеджмента удобно пользоваться в таком виде. На этом примере Вы можете рассмотреть, как строится архитектура приложений VK Mini Apps. 

В репозитории бэкенд реализован на Python FastAPI, фронтенд на React, а за распределение запросов отвечает Nginx. Все части реализованы в виде контейнеров Docker, что обеспечивает удобное взаимодействие. 

Вы также можете использовать репозиторий как шаблон при начале работы с новыми проектами: просто удалите примеры из папки frontend и backend. Docker позволит быстро развернуть окружение. 

Репозиторий доступен на GitHub.

❯ Тестирование и публикация мини-приложения

Пошагово разберем процесс деплоя VK Mini Apps на примере нашего проекта:

  1. Создайте облачный сервер в Timeweb Cloud. Перейдите на страницу создания нового сервера. Закажите конфигурацию, подходящую под ваш проект.

  2. Добавьте бесплатный домен и привяжите его к серверу. Перейдите в раздел «Домены и SSL» и добавьте любой понравившийся домен третьего уровня twc1.net. Например: test-vk-mini-app.twc1.net.

Image5
  1. Перенесите файлы проекта на сервер. Если проект лежит на GitHub, склонируйте репозиторий:

git clone https://github.com/timeweb-cloud-tutorials/twc-vk-mini-app
  1. Установите Docker и Docker Compose на сервер.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo usermod -aG docker $USER && newgrp docker
  1. Запустите проект мини-приложения, используя Docker Compose.

cd twc-vk-mini-app
docker compose build
docker compose up -d
  1. Проверьте, что приложение доступно, обратившись к серверу по IP-адресу в браузере по протоколу HTTP. Например, http://176.53.161.92.

  2. Дождитесь, пока домен станет доступен в большинстве зон. Обычно это происходит быстро, но процесс может занимать до 24 часов. Отслеживать процесс можно с помощью сервиса. Когда большинство зон будет показывать IP-адрес вашего сервера, можно приступать к следующему шагу.

  3. Активируйте SSL-сертификат от Let’s Encrypt. Используйте подготовленный bash-скрипт, который автоматизирует установку сертификата. Сперва обозначьте ему права на исполнение:

chmod +x init-letsencrypt.sh

Выполните скрипт с указанием переменных:

./init-letsencrypt.sh <доменное имя> <ваш email>

Скрипт самостоятельно выпустит сертификат, добавит его в Nginx, проверит корректность и автоматически перевыпустит, когда срок действия подойдет к концу. 

  1. Проверьте доступность приложения. Перейдите по домену, указанному в панели Timeweb Cloud, используя протокол HTTPS. Приложение должно быть доступно и использовать SSL-сертификат Let’s Encrypt.

Image2
  1. Создайте приложение на странице VK для разработчиков. Укажите тип, название и категорию приложения.

Image7
  1. Перейдите на страницу настроек созданного приложения. Во вкладке «Размещение» укажите доменное имя, привязанное к вашему серверу.

Image6
  1. Включите приложение для пользователей. Активируйте кнопку «Включено» в разделе «Состояние для пользователей».

Image4

Теперь ваше приложение будет отображаться по URL. 

  1. Скопируйте ссылку из интерфейса VK и вставьте ее в адресную строку.

Image3

Всё готово. Приложение отображается как мини-приложение VK.

Image1

❯ Полезные ресурсы и документация VK Mini Apps

Чтобы быть в курсе всех новостей и использовать лучшие практики, стоит изучать следующие источники:

  1. Официальная документация по VK Mini Apps. В ней подробно описано, как работает инфраструктура мини-приложений, приведены примеры кода и детали по разрешениям.

  2. VKUI на GitHub. Репозиторий с компонентами интерфейса, инструкциями и ответами на вопросы.

  3. Документация VK Bridge. Список доступных методов, события, примеры.

  4. VK Community. Официальное сообщество для разработчиков в ВКонтакте. Там обсуждают важные нововведения, публикуют обновления и кейсы.

Кроме того, всегда полезно смотреть на открытые репозитории готовых мини-приложений в GitHub, где можно подсмотреть структуру проекта, подход к работе с API, способы оптимизации интерфейса. Чем больше примеров вы изучите, тем проще будет проектировать собственный сервис.

❯ Заключение

В заключение отметим, что VK Mini Apps — это мощный и при этом доступный инструмент для создания сервисов, способных привлечь широкую аудиторию ВКонтакте. 

Пройдя все описанные шаги — от простого подключения VK Bridge и настройки интерфейса на базе VKUI до полноценного деплоя с Docker и SSL-сертификатами — вы получаете готовое к использованию мини-приложение, работающее внутри одной из крупнейших соцсетей. 

Автор текста: Роман Панков


Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале 

Перейти ↩

Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите кэшбэк на баланс.

📚 Читайте также:

Теги:
Хабы:
+2
Комментарии1

Публикации

Информация

Сайт
timeweb.cloud
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Timeweb Cloud

Истории