RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

问题[aiogram]

Martin Hope
ivan ivanov
Asked: 2025-03-01 16:02:15 +0000 UTC

如果用户在数据库中,则接受 TG 组的申请。逻辑错误?

  • 5

我写了这个条件。事实证明,如果用户在db.user_exist数据库中(有相应的请求),那么我们接受该用户加入电报组update.approve()

@dp.chat_join_request_handler()
async def join_request(update: types.ChatJoinRequest):
    if db.user_exist(update.from_user.id):
        await update.approve()
    else:
        await update.decline()
        await bot.send_message(update.from_user.id, text="Прежде чем начать общаться, вам необходимо нажать на кнопку /start")

如果不在数据库中,那么我们首先取消update.decline()请求并向他发送一条消息,说明他需要在机器人中注册。注册后,他会收到一个小组链接,他必须再次点击“申请会员资格”按钮。

问题是update.decline()取消了申请,但有时电报仍然说“您已经发送了会员申请”,尽管update.decline()起作用了,但因为我作为管理员,在小组中看不到任何会员申请...

总的来说,是否有可能以某种方式简化这一点?我的逻辑有什么错误?

aiogram
  • 1 个回答
  • 31 Views
Martin Hope
Михаил Морозов
Asked: 2024-04-20 03:57:22 +0000 UTC

如何更改消息中的照片?python aiogram 3.3

  • 5

有一段代码:

@dp.message(Command("start"))
async def start(message: Message):
    await db.add_user(message.from_user.id)
    photo = FSInputFile("pic1.jpg")
    message_text = "hi"
    await bot.send_photo(message.chat.id, caption = message_text, photo=photo,
reply_markup=keyboard())

当我按下键盘按钮时,如何更改此消息中的照片?

aiogram
  • 1 个回答
  • 9 Views
Martin Hope
jerau
Asked: 2024-03-23 04:00:35 +0000 UTC

如何让电报机器人(aiogram)发送带有图片和内联键盘的消息?

  • 5

该机器人具有“订购用具”功能。有一个 MediaGroupBuilder 显示消息和照片,是否可以以某种方式向该消息添加内联键盘?(现在的输出如图所示)(我在文档中没有找到它,我用谷歌搜索了它,但没有看到任何东西) 在此输入图像描述

@router.callback_query(lambda query: query.data == "start_attribute_order")
async def start_attribute_order(query : types.CallbackQuery, state: FSMContext):    
    album_builder = MediaGroupBuilder(
        caption="Доступная атрибутика"
    )
    photos = [
        "https://img-lcwaikiki.mncdn.com/mnresize/1024/-/pim/productimages/20221/5422056/l_20221-s20637z8-csw_a2.jpg",
        "https://legionmurmansk.ru/images/thumbnails/1143/1000/detailed/2/%D0%A7%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D1%84%D1%83%D1%82%D0%B1%D0%BE%D0%BB%D0%BA%D0%B0.jpg",
        "https://files.giftsoffer.ru/reviewer/tb/99/5190.60_15.jpg"
    ]
    for photo in photos:
        album_builder.add_photo(media=photo)
    
    kb = [
        [types.InlineKeyboardButton(text="Кепка", callback_data="Кепка"),],
        [types.InlineKeyboardButton(text="Футболка черная", callback_data="Футболка черная"),],
        [types.InlineKeyboardButton(text="Футболка белая", callback_data="Футболка белая"),],
    ]
    keyboard = types.InlineKeyboardMarkup(inline_keyboard=kb)

    await query.message.answer_media_group(media=album_builder.build(), reply_markup=keyboard)
    await state.set_state(OrderDialog.order_item)
aiogram
  • 1 个回答
  • 13 Views
Martin Hope
Feeni
Asked: 2022-12-20 01:16:00 +0000 UTC

类型错误:get_state() 缺少 1 个必需的位置参数:'self'

  • 5

我正在 aiogram 库上编写一个 tg 机器人。我的状态机有错误,我不明白问题出在哪里。这是我的代码:

import asyncio
import time
import config
from keyboards import markup

from aiogram import Bot, Dispatcher, executor, types
from sqlighter import SQLighter
from aiogram.dispatcher.filters import Command
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.contrib.fsm_storage.memory import MemoryStorage

class NowState(StatesGroup):
    Kazino = State()
    KazinoPlay = State()

bot = Bot(token=config.token)
dp = Dispatcher(bot, storage=MemoryStorage)

db = SQLighter('db.db')

@dp.message_handler(commands=['start'], state='*')
async def add_user(message: types.Message):
    print(f'{message.date} Пользователь {message.chat.first_name} зашел в /start')
    if (not db.user_exists(message.from_user.id)):
        db.add_user(message.chat.first_name, message.from_user.id, message.from_user.username)
        print(f'{message.date} Пользователь {message.chat.first_name} внесен в БД')
    await bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAJLLWNy-iWyrGNFW3RjDXvoPX2_OHlzAAKHFQACPQ9QSd6bZv3Wx6O_KwQ')
    await bot.send_message(message.chat.id, "Привет, {0.first_name}!".format(message.from_user), reply_markup=markup)

@dp.message_handler(commands=['feedback'], state='*')
async def feedback(message: types.Message):
    print(f'{message.date} Пользователь {message.chat.first_name} зашел в /feedback')
    await bot.send_message(message.chat.id, 'Связь с разработчиком - https://t.me/ook_da')

@dp.message_handler(content_types=['sticker'], state='*')
async def sticker(message):
    print(f'{message.date} Пользователь {message.chat.first_name} просто скинул стикер, айди этого стикера: {message.sticker.file_id}')
    await message.reply('Я тебя не понял.')
    await bot.send_message(938764214, f'Стикер от пользователя {message.chat.first_name}')
    await bot.send_sticker(938764214, message.sticker.file_id)



@dp.message_handler(state=None)
async def text_messages(message: types.Message, state: FSMContext):
    if message.text == 'Крестики-Нолики❌⭕️(beta)':
        print(f'{message.date} Пользователь {message.chat.first_name} зашел в Крестики-Нолики❌⭕️(beta)')

        await message.answer('крестики нолики')
    elif message.text == 'Сообщение другому пользователю' and message.from_user.username == 'ook_da':
        print(f'{message.date} Пользователь {message.chat.first_name} зашел в Сообщение другому пользователю')
        await bot.send_message(message.chat.id, 'скоро будет')
    elif message.text == 'Казино💸':
        await bot.send_message(message.chat.id, 'Позже')
        await NowState.Kazino.set()
    else:
        print(f'{message.date} Пользователь {message.chat.first_name} написал {message.text} ')
        await message.reply('Я тебя не понял.')

@dp.message_handler(state=NowState.Kazino)
async def kazino(message: types.Message, state: FSMContext):
    if message.text == 'Баланс':
        print(f'{message.date} Пользователь {message.chat.first_name} зашел в Баланс')
        await bot.reply('Ваш баланс: 1000')
    elif message.text == 'Назад🔙':
        print(f'{message.date} Пользователь {message.chat.first_name} зашел в Назад🔙')
        bot.reply('Хорошо', reply_markup=markup)
        state.finish()
    elif message.text == 'Игра':
        print(f'{message.date} Пользователь {message.chat.first_name} зашел в Игра')
        bot.reply('Погнали играть!')
        await NowState.KazinoPlay.set()


if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)

@ dp.message_handler (state=None)和@dp.message_handler(state=NowState.Kazino) 错误

aiogram
  • 1 个回答
  • 9 Views
Martin Hope
Corn
Asked: 2022-08-24 02:04:37 +0000 UTC

如何使用列表中的名称创建键?

  • 0

艾奥加姆图书馆。我有一个列表,我需要使用此列表中的名称创建 KeyboardButton 类型的按钮。那些。假设列表是 [('print',), ('enter',), ('delete',), ('add',), ('home',)] (这个列表是从数据库查询中获得的)。并且您需要创建 5 个具有适当名称的 KeyboardButton 类型(粗略地说是键盘)的按钮(即列表中的元素数)。

async def choice_cat(message):
    CATs = cur.execute(f'SELECT name FROM cathlete WHERE id = "{message.from_user.id}"').fetchall()
    for fds in range(len(CATs)):
        astt = ReplyKeyboardMarkup(resize_keyboard=True).add(KeyboardButton(f"CATs[{fds}]"))

不应该考虑以“为”开头的东西,我的病态幻想!我试图随机找到一种方法,但无济于事(

python aiogram
  • 1 个回答
  • 39 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5