<?php
// Telegram Bot Tokeningizni kiriting
define('BOT_TOKEN', 'Botingiz_Tokeni');
define('API_URL', 'https://api.telegram.org/bot' . BOT_TOKEN . '/');
// Telegram'dan kelayotgan so'rovni qabul qilish
$content = file_get_contents("php://input");
$update = json_decode($content, true);
if (!$update) {
exit;
}
// 1. /quiz komandasi kelganda (Guruhda yoki Shaxsiyda)
if (isset($update['message'])) {
$message = $update['message'];
$chat_id = $message['chat']['id'];
$text = $message['text'] ?? '';
if ($text === '/quiz' || $text === '/start') {
sendQuiz($chat_id);
}
}
// 2. Tugma bosilganda (Callback Query)
if (isset($update['callback_query'])) {
$callback = $update['callback_query'];
$callback_id = $callback['id'];
$data = $callback['data'];
$user_first_name = $callback['from']['first_name'];
// Javobni tekshirish (opt_1 -> To'g'ri, opt_2/opt_3 -> Noto'g'ri)
if ($data === 'answer_correct') {
$alertText = "🎉 O'rinli, {$user_first_name}! Siz to'g'ri topdingiz! (PHP 8.0+)";
showAlert($callback_id, $alertText, true);
} elseif (strpos($data, 'answer_wrong') !== false) {
$alertText = "❌ Afsuski xato, {$user_first_name}. Yana bir bor urinib ko'ring!";
showAlert($callback_id, $alertText, false);
}
}
/**
* Viktorina savolini va tugmalarni yuborish
*/
function sendQuiz($chat_id) {
$question = "<b>❓ Kun savoli:</b>\n\nPHP dasturlash tilining eng so'nggi yirik versiyalaridan birida paydo bo'lgan 'Match' opsiyasi qaysi versiyada qo'shilgan?";
// Inline tugmalar
$keyboard = [
'inline_keyboard' => [
[
['text' => 'A) PHP 7.4', 'callback_data' => 'answer_wrong_1'],
['text' => 'B) PHP 8.0', 'callback_data' => 'answer_correct']
],
[
['text' => 'C) PHP 8.2', 'callback_data' => 'answer_wrong_2'],
['text' => 'D) PHP 5.6', 'callback_data' => 'answer_wrong_3']
]
]
];
$postData = [
'chat_id' => $chat_id,
'text' => $question,
'parse_mode' => 'HTML',
'reply_markup' => json_encode($keyboard)
];
makeRequest('sendMessage', $postData);
}
/**
* Foydalanuvchiga tepadan pop-up (Alert) chiqarish
*/
function showAlert($callback_id, $text, $showAlert = false) {
$postData = [
'callback_query_id' => $callback_id,
'text' => $text,
'show_alert' => $showAlert // true bo'lsa oyna bo'lib chiqadi, false bo'lsa tepada tezda yo'qoladi
];
makeRequest('answerCallbackQuery', $postData);
}
/**
* Telegram API so'rov yuborish funksiyasi
*/
function makeRequest($method, $data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, API_URL . $method);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
⚡️ PHP Telegram Bot: Interaktiv Viktorina (Quiz) funksiyasi!
Kanal obunachilari yoki guruh a'zolarini jalb qilish (engagement) uchun juda qulay va ixcham kod.
', 'https://api.telegra
- cURL orqali to'g'ridan-to'g'ri Telegram API bilan ishlaydi (Kutubxonasiz).
- Inline tugmalar vaURL', 'https://api.tele
orqali pop-up oyna chiqaradi.
- Har bir foydalanuvchiga uning ismini aytib to'g'ri/xato javob berganini ko'rsatadi.