Как обработать постбек, тг бот
такая проблема. Партнёрская программа при регистрации на сайте отправляет постбек Регистрация: https://api.telegram.org/bot<bot_token>/sendMessage?chat_id=&text={sub1} В группу где другой бот2 должен был видеть этот {sub} (это id пользователя), после этого бот2 вносит изменения в БД. Можете накинуть идей как это починить или другие способы решения задачи.
Ответы (1 шт):
Связка канал + группа: Идея в следующем
Вы создаёте Канал, в который бот-отправитель публикует пост.
К этому каналу вы прикрепляете группу обсуждения (обычная Telegram-группа).
Когда бот пишет сообщение в Канал, Telegram автоматически дублирует это сообщение в группу обсуждения.
И вот уже во втором боте вы можете отследить это сообщение в группе, потому что оно отправлено не ботом, а системой Telegram, и таким образом его видно второму боту.
Как обработать postback и внести изменения в БД
Представим:
Первый бот отправляет инлайн-кнопку с callback_data, например: "update_12345"
Когда пользователь нажимает на неё — срабатывает postback (callback query).
Вы в обработчике postback'а просто делаете SQL-запрос.
@dp.callback_query_handler(lambda c: c.data and c.data.startswith('update_'))
async def process_callback(callback_query: CallbackQuery):
record_id = callback_query.data.split('_')[1]
# Обновляем запись в БД
conn = sqlite3.connect("mydb.db")
cursor = conn.cursor()
cursor.execute("UPDATE requests SET status = ? WHERE id = ?", ('approved', record_id))
conn.commit()
conn.close()
await bot.answer_callback_query(callback_query.id, text="Статус обновлён")