Tarkibga o'tish

Telegram bot (PHP / Nutgram) β€” 0 dan Expertgacha

Bu kitob PHP biladigan dasturchini Telegram bot yozish bo'yicha noldan ekspert darajaga olib chiqadi. Oddiy echo botdan boshlab β€” handler va routing, filtrlar, klaviaturalar, callback, conversations (suhbat / FSM), middleware, ma'lumotlar bazasi, to'lovlar, webhook va deploy orqali β€” to'liq botgacha; so'ng real amaliyot: guruh/kanal boshqaruvi, majburiy obuna, Telegram Mini App integratsiyasi va Hamster uslubidagi clicker o'yin kapstoni. Hamma kod Nutgram 4.x freymvorki bilan yoziladi.

πŸ€– Nutgram. Bu kitob Nutgram (zamonaviy PHP 8 Telegram bot freymvorki) dan foydalanadi: fluent handlerlar, conversations, middleware, klaviatura quruvchilar va FakeNutgram β€” tokensiz, tarmoqsiz test vositasi.

⚠️ HALOL eslatma. Botning mantig'i β€” handlerlar, conversations, middleware, klaviaturalar, callback va ma'lumotlar bazasi β€” offline ishga tushirib tekshirilgan (Nutgram::fake() + PHPUnit, mock update'lar bilan). Ammo jonli ishlash β€” Telegram'ga polling/xabar yuborish, webhook, to'lovlar, guruhda ban β€” @BotFather dan olingan token va internet (Mini App uchun HTTPS hosting) talab qiladi; bu bloklar to'g'ri, lekin matnda "illustrativ" deb belgilangan.

ℹ️ Bu kitob siz PHP asoslarini (sinf, namespace, composer, closure, type hints, PDO) bilasiz deb hisoblaydi. PHP yangi bo'lsa, avval PHP qo'llanmasini o'qing. Chuqurroq mavzular uchun PHP Expert treki bor.


Qanday o'qish kerak

  1. Boblarni tartib bilan o'qing (01 β†’ 02 β†’ ...). Har biri oldingisiga tayanadi.
  2. @BotFather dan token oling (/newbot) va uni .env da saqlang β€” hech qachon kodga yozmang.
  3. Har bir misolni o'zingiz tering. Bot o'qib emas, yozib o'rganiladi.
  4. FakeNutgram bilan testlarni o'zingiz ishga tushiring β€” botni Telegram'siz sinash ekspert ko'nikmasi.

Talab

Kerak Daraja
PHP asoslari (sinf, composer, closure) Shart
PHP 8.2+ va Composer Shart
Telegram hisobi va @BotFather token Shart (jonli sinov uchun)
Terminal bilan tanishlik Foydali
SQL/ma'lumotlar bazasi asoslari Foydali

Mundarija

I qism β€” Asoslar

# Bob Mavzu
01 Telegram bot va Nutgram bilan tanishuv Bot API, @BotFather token, Nutgram nega, composer require, polling vs webhook.
02 Birinchi bot: /start va echo new Nutgram($token), onCommand, sendMessage, echo, $bot->run(), token .env.
03 Handlerlar va routing onMessage/onCommand/onText/onCallbackQuery, handler tartibi, fallback, accessorlar.
04 Filtrlar va buyruqlar Parametrli buyruqlar, deep-link, onText regex, constraints, setMyCommands.

II qism β€” Foydalanuvchi bilan muloqot

# Bob Mavzu
05 Xabar yuborish, formatlash va media parse_mode (HTML/MarkdownV2), escape, sendPhoto/sendDocument, media-group.
06 Klaviaturalar: reply va inline ReplyKeyboardMarkup, InlineKeyboardMarkup, builder, InlineMenu.
07 Callback query va inline rejim onCallbackQueryData, answerCallbackQuery, editMessageText, pagination, inline mode.
08 Conversations (suhbat / FSM) Conversation klassi, next/end, ko'p qadamli forma, holatni saqlash, /cancel.

III qism β€” Arxitektura va ma'lumot

# Bob Mavzu
09 Middleware Onion modeli, global/guruh/handler darajasi, throttling, ma'lumot ulashish.
10 Ma'lumotlar bazasi bilan ishlash PDO (SQLite/MySQL), repository, foydalanuvchini upsert, DI orqali ulash.
11 Loyiha tuzilishi va konfiguratsiya Modullash, PSR-4 autoload, .env, DI-konteyner, bootstrap.
12 Maxsus xususiyatlar Fayl yuklab olish, media group, lokatsiya/kontakt, buyruqlar menyusi.

IV qism β€” Ilg'or

# Bob Mavzu
13 Webhook va running mode Polling vs webhook, running mode'lar, setWebhook, secret_token, nginx+php-fpm.
14 To'lovlar va Telegram Stars sendInvoice, onPreCheckoutQuery, onSuccessfulPayment, Telegram Stars (XTR).
15 Rejalashtirilgan vazifalar va broadcast Cron, broadcast, BulkMessenger, flood-control (429 retry), bloklangan foydalanuvchi.

V qism β€” Sifat va deploy

# Bob Mavzu
16 Testlash (FakeNutgram) Nutgram::fake(), hearText->reply, assertReplyText/assertSequence, PHPUnit/Pest.
17 Production va deploy Supervisor/systemd (polling), nginx+php-fpm (webhook), Docker, onException, monitoring.
18 Yakuniy kapston: to'liq bot Vazifa-menejer bot: conversation, DB, klaviatura, middleware, admin, testlar, deploy.

VI qism β€” Guruh, kanal va Mini App (real amaliyot)

# Bob Mavzu
19 Guruhlarda ishlash Guruh turlari, privacy mode, getChatMember a'zo/admin, onMyChatMember.
20 Guruh moderatsiyasi Welcome (onChatMember), ban/mute (restrictChatMember + ChatPermissions), captcha.
21 Kanallar bilan ishlash Kanalga post, onChannelPost, linked discussion group, forward/copy, reaksiyalar.
22 Majburiy obuna Obuna middleware, gate klaviatura, bir nechta kanal, yopiq kanal (onChatJoinRequest).
23 Telegram Web App (Mini App) asoslari WebAppInfo, 3 tugma turi, telegram-web-app.js SDK, sendData β†’ onWebAppData.
24 Web App xavfsizligi: initData initData HMAC validatsiya, validateWebAppData, replay himoyasi, serverda tekshirish.
25 Mini App backend PHP backend (router/Slim), har so'rovda initData auth, DB holat, bot↔WebApp↔backend uchburchagi.
26 Kapston: Hamster uslubidagi clicker Mini App Tap-to-earn: balans/energiya/upgrade, anti-cheat (serverda hisoblanadi), to'liq loyiha.

Muallif

Oqil Imomnazarov β€” ioqil.uz Β· Telegram Β· YouTube

Kitob bepul tarqatiladi (CC BY-NC-SA 4.0). Savdo qilish taqiqlanadi.