May 25, 2024

Vlad Kibenko Speech

Работает с ya.ru 7 лет. Помогает улучшать Telegram Mini Apps уже 2 года.

Workshop по созданию Telegram Mini Apps с реферальной системой

Начало работы с Telegram Mini Apps

Чтобы создать Telegram Mini App, нужно сначала создать бота:

  1. Перейдите в BotFather.
  2. Создайте нового бота.

Реферальная система

Реферальная система позволяет пользователям приглашать других и получать за это награды (токены, призы, энергию и т.д.). Это одна из самых популярных механик в мобильных играх.

Пример документации по реферальной системе: Telegram Mini Apps Documentation

Структура Базы Данных

Создайте таблицу Users для хранения информации о пользователях:

  • Поля: ID, имя, реферальный код.

Авторизация пользователей

Для авторизации используйте Init Data, которая содержит информацию о пользователе:

  • Init Data проверяется с помощью хэша и секретного ключа бота.
  • Используйте библиотеку tmmate/init-data-node.

Код для авторизации

Пример кода для Express.js:

javascriptКопировать кодimport express from 'express';
import { parse } from '@tma.js/sdk';

const app = express();

app.post('/authorize', (req, res) => {
  const initData = req.headers['authorization'];
  const parsedData = parse(initData);

  if (parsedData.isValid) {
    res.send('Authorized');
  } else {
    res.status(401).send('Unauthorized');
  }
});

app.listen(10000, () => {
  console.log('Server running on http://localhost:10000');
});

Получение Init Data

Чтобы получить Init Data, используйте утилиту: tma-js-create-mini-app.

Она задаст несколько вопросов и создаст шаблон приложения с нужными зависимостями.

Заключение

  • Telegram Mini Apps и их документация делают разработку проще.
  • Используйте доступные инструменты и библиотеки для ускорения процесса.
  • Присоединяйтесь к сообществу разработчиков для обмена опытом и улучшения навыков.

Дополнительно

Для развертывания бота вам понадобится HTTPS. Вот несколько популярных сервисов:

  • Ngrok
  • Localtunnel

Эти сервисы помогут вам настроить безопасное соединение для вашего бота.