Top.Mail.Ru
Ответы

Помогите добавить донат звездами в бота телеграмм

мне нужно функция оплаты доната telegram stars к сожалению у меня не получается это сделать.
нужно чтобы счет вылезал после нажатия кнопки "Донат" она уже есть,но она выдает ссылки на патреон юви и тд.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
 import logging 
import sqlite3 
from telegram import Update, ReplyKeyboardMarkup 
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes, MessageHandler, filters 
 
# Включаем логирование 
logging.basicConfig( 
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', 
    level=logging.INFO 
) 
logger = logging.getLogger(__name__) 
 
# Функция для инициализации базы данных 
def init_db(): 
    conn = sqlite3.connect('users.db') 
    cursor = conn.cursor() 
    cursor.execute(''' 
    CREATE TABLE IF NOT EXISTS users ( 
        user_id INTEGER PRIMARY KEY 
    ) 
    ''') 
    conn.commit() 
    conn.close() 
 
# Функция-обработчик команды /start 
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 
    user_id = update.message.from_user.id 
    conn = sqlite3.connect('users.db') 
    cursor = conn.cursor() 
    cursor.execute('INSERT OR IGNORE INTO users (user_id) VALUES (?)', (user_id,)) 
    conn.commit() 
    conn.close() 
 
    # Создаем клавиатурные кнопки 
    keyboard = [ 
        ['Количество пользователей'], 
        ['Донат'] 
    ] 
    reply_markup = ReplyKeyboardMarkup(keyboard, one_time_keyboard=True, resize_keyboard=True) 
 
    await update.message.reply_text('Привет! Я ваш бот. Как я могу помочь?', reply_markup=reply_markup) 
 
# Функция-обработчик текстовых сообщений 
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 
    text = update.message.text 
 
    if text == 'Количество пользователей': 
        await count(update, context) 
    elif text == 'Донат': 
        await donate_info(update, context) 
 
# Функция-обработчик команды /count 
async def count(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 
    conn = sqlite3.connect('users.db') 
    cursor = conn.cursor() 
    cursor.execute('SELECT COUNT(*) FROM users') 
    count = cursor.fetchone()[0] 
    conn.close() 
 
    await update.message.reply_text(f'Количество активированных пользователей: {count}') 
 
# Функция для вывода информации о донате 
async def donate_info(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 
    donate_message = ( 
        "Если вы хотите поддержать меня, вы можете сделать это через:\\n" 
         
        "1. [Патреон](https://www.patreon.com/your_account)\\n" 
         
        "2. [Киви кошелек](https://qiwi.com)\\n" 
         
        "3. [PayPal](https://www.paypal.com)\\n\\n" 
         
        "Спасибо за вашу поддержку!" 
    ) 
    await update.message.reply_text(donate_message) 
 
# Основная функция 
if __name__ == '__main__': 
    init_db()  # Инициализируем базу данных 
    application = ApplicationBuilder().token('7961:HusG4r').build() 
 
    application.add_handler(CommandHandler("start", start)) 
    application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))  # Обработчик текстовых сообщений 
 
    # Запускаем бота 
    application.run_polling() 
По дате
По рейтингу
Аватар пользователя
Знаток
1мес

ты че совсем придурок

во-первых все пишут на aiogram 3
во-вторых aiosqlite а не sqlite3

Аватар пользователя
Искусственный Интеллект
1мес

Че такое донат
Т

Аватар пользователя
Мудрец
1мес

Не пробовал манго, не завышалась планка, но кто бы мог подумать об одном, мы в силах тормозить но нога до упора в пол