Ответы пользователя по тегу Telegram
  • Куда мне писать данный код?

    @maximq
    QA Engineer
    Там же снизу написано:
    Я использовал Postman для этой задачи, просто удобнее, когда всё наглядно и с user-friendly интерфейсом

    Эту команду можно импортировать в postman, после установки и запуска postman выбираем File - Import и нажимаем CTRL + V.
    Таким образом будет создан запрос для отправки.

    Что вообще собой представляет эта команда? Выполнив (отправив) этот запрос мы сообщаем телеграму, что необходимо зарегистрировать вебхук, куда ему (телеграму) следует отправлять нам уведомления — на какой сервер. В качестве сервера он принимает значение содержащееся в теле запроса - json объект, где есть ключ url — значение которого (домен API-шлюза) и будет принят для отправки на него уведомлений.

    Учитывая какой вопрос вы задали, предположу что бот у вас будет работать на вашем компьютере, соответственно и сервера то, возможно, нет. Вам нужен другой туториал по разработке бота (не вебхук бот), вот один из хорошо написанных.
    Ответ написан
    1 комментарий
  • Как переслать пост из канала всем участникам через бота в ЛС? Как отправить случайный пост при взаимодействии с кнопкой в ТГ боте?

    @maximq
    QA Engineer
    1. Как можно переслать пост из канала всем участникам, а не только определённым по ID через бота в ЛС?

    Записать в переменную users всех участников канала. Я не занимался рассылкой, но мне кажется что здесь понадобится таймаут при выполнении запросов. Иначе телеграм заблокирует запросы бота.

    Лучше будет держать в базе id всех пользователей канала. Завести таблицу messageToSend со структурой вида
    | id | user_id | message                                  |
    | -- | ------- | ---------------------------------------- |
    | 1  | 12345   | Привет, наша утренняя рассылка новостей  |
    | 2  | 67890   | Привет, от тебя давно не было активности |

    Периодически брать задания для отправки из этой таблицы

    2. Как можно отправить случайный пост из канала участнику при взаимодействии с кнопкой через бота в ЛС?

    from aiogram import types, Dispatcher
    from createbot import dp, shieldbot
    import keyboards
    from random import choice
    
    posts = [<id постов>]
    chat_id = <id канала>
    
    @dp.message_handler(commands=['random_post', 'lucky'])
    async def random_channel_post(message: types.Message):
        await shieldbot.forward_message(chat_id=message.from_user.id, from_chat_id=chat_id, message_id=choice(posts))
    Ответ написан
  • Как конвертировать tdata в session + json?

    @maximq
    QA Engineer
    Вероятно вы установили библиотеку, а TDesktop client нет.
    Путь существует? Клиент TDesktop установлен?
    F:\pythonProject\test_canverter_tdata\tdatas
    Ответ написан
    3 комментария
  • TypeError: event_list() missing 1 required positional argument: 'call_data" aiogram при использовании CallbackFactory?

    @maximq
    QA Engineer
    Переименуйте позиционный аргумент в callback_data
    Пример из документации:
    class Action(str, Enum):
        ban = "ban"
        kick = "kick"
        warn = "warn"
    
    class AdminAction(CallbackData, prefix="adm"):
        action: Action
        chat_id: int
        user_id: int
    
    ...
    # Inside handler
    builder = InlineKeyboardBuilder()
    for action in Action:
        builder.button(
            text=action.value.title(),
            callback_data=AdminAction(action=action, chat_id=chat_id, user_id=user_id),
        )
    await bot.send_message(
        chat_id=admins_chat,
        text=f"What do you want to do with {html.quote(name)}",
        reply_markup=builder.as_markup(),
    )
    ...
    
    @router.callback_query(AdminAction.filter(F.action == Action.ban))
    async def ban_user(query: CallbackQuery, callback_data: AdminAction, bot: Bot):
        await bot.ban_chat_member(
            chat_id=callback_data.chat_id,
            user_id=callback_data.user_id,
            ...
        )
    Ответ написан
    Комментировать