Как с помощью Телеграмм бота узнать о себе

Telegram бот на Python, работа с геолокацией пользователя

Вот и третья часть, где мы продолжим создавать телеграм бота с помощью Python и библиотеки requests . Сегодня вы узнаете как работать с геолокацией пользователя, и как с помощью бесплатного «API геокодера» определить адрес по координатам.

Функционал бота будем выглядеть следующим образом: Пользователь нажимает кнопку в боте и отправляет свою геолокацию. А в ответ к нему бот пишет, в каком городе он находится.

Это часть добавлена по просьбе одно из читателей сайта ramziv.com 🙂

просьбе одно из читателей сайта ramziv.com

Код телеграм бота

Перед тем как продолжить писать код, предлагаю убрать для удобства весь лишний функционал, что мы добавили в прошлых частях. Оставить только настраиваемую клавиатуру и ответ на приветствие.

Прошу вас обратить внимание на функцию run , я добавил новое условие, так как бот прекращал работу ошибкой, если вместо текста отправить ему файл, картинку или геолокацию. Данный код будет работать на Python 3.8 и выше.

#https://ramziv.com/blog/29 import requests import time import json TOKEN = ‘ТОКЕН’ URL = ‘https://api.telegram.org/bot’ def get_updates(offset=0): result = requests.get(f’/getUpdates?offset=’).json() return result[‘result’] def send_message(chat_id, text): requests.get(f’/sendMessage?chat_id= «keyboard»: [[«Привет», «Hello»]], «resize_keyboard»: True, «one_time_keyboard»: True>data = requests.post(f’/sendMessage’, data=data) def check_message(chat_id, message): if message.lower() in [‘привет’, ‘hello’]: send_message(chat_id, ‘Привет :)’) else: reply_keyboard(chat_id, ‘Я не понимаю тебя :(‘) def run(): update_id = get_updates()[-1][‘update_id’] # Сохраняем ID последнего отправленного сообщения боту while True: time.sleep(2) messages = get_updates(update_id) # Получаем обновления for message in messages: # Если в обновлении есть ID больше чем ID последнего сообщения, значит пришло новое сообщение if update_id < message[‘update_id’]: update_id = message[‘update_id’]# Сохраняем ID последнего отправленного сообщения боту if (user_message := message[‘message’].get(‘text’)): # Проверим, есть ли текст в сообщении check_message(message[‘message’][‘chat’][‘id’], user_message) # Отвечаем if __name__ == ‘__main__’: run()

Геолокация пользователя

Что бы получить геолокацию пользователя, добавим в нашу клавиатуру новую кнопку с текстом «Где я нахожусь» и укажем ключ request_location со значением True .

Еще по теме:  Как зайти в Телеграм подруги

#https://ramziv.com/blog/29 def reply_keyboard(chat_id, text): reply_markup =< «keyboard»: [[«Привет», «Hello»], []], «resize_keyboard»: True, «one_time_keyboard»: True> data = requests.post(f’/sendMessage’, data=data)

Так же добавим новое условие в функцию run , что бы проверить, что вместо текста в сообщение была отправлена геолокация. Если условие истина, выведем на экран сообщение с координатами пользователя.

#https://ramziv.com/blog/29 def run(): update_id = get_updates()[-1][‘update_id’] # Сохраняем ID последнего отправленного сообщения боту while True: time.sleep(2) messages = get_updates(update_id) # Получаем обновления for message in messages: # Если в обновлении есть ID больше чем ID последнего сообщения, значит пришло новое сообщение if update_id < message[‘update_id’]: update_id = message[‘update_id’]# Сохраняем ID последнего отправленного сообщения боту if (user_message := message[‘message’].get(‘text’)): # Проверим, есть ли текст в сообщении check_message(message[‘message’][‘chat’][‘id’], user_message) # Отвечаем if (user_location := message[‘message’].get(‘location’)): # Проверим, если ли location в сообщении print(user_location)

Запустим, и проверим нашего бота.

Если нажать кнопку «Где я нахожусь», всплывает push сообщения, где телеграм спрашивает разрешение на отправку геолокации боту.

Телеграм бот на Python

Нажимаем «Ок», и видим что в консоли появилось сообщение с координатами пользователя.

Все работает, теперь можно переходить к следующему этапу, где мы научимся определять адрес по координатам с помощью обратного геокодирования.

API геокодер

просьбе одно из читателей сайта ramziv.com

LocationIQ API: позволяет определять координаты и получать сведения об объекте по его адресу (прямое геокодирование) и наоборот, определять адрес объекта по его координатам (обратное геокодирование). Сервис предлагает бесплатный план, где разрешено делать 5000 запросов в день, с 2 запросами в секунду.

Зарегистрируемся, и получим токен.

Проверим как работает API, откроем в новой вкладке ссылку заменив токен и ранее полученные координаты пользователя.

https://eu1.locationiq.com/v1/reverse.php?key=lon=lat=format=json’, headers=headers).json() return f’Твое местоположение: ‘

Почти все готово, осталось изменить функцию run , что бы бот отправил пользователю сообщение с его местоположением, если в боте нажали кнопку «Где я нахожусь».

#https://ramziv.com/blog/29 import requests import time import json TOKEN = ‘ТОКЕН’ URL = ‘https://api.telegram.org/bot’ def get_updates(offset=0): result = requests.get(f’/getUpdates?offset=’).json() return result[‘result’] def send_message(chat_id, text): requests.get(f’/sendMessage?chat_id= «keyboard»: [[«Привет», «Hello»], []], «resize_keyboard»: True, «one_time_keyboard»: True> data = requests.post(f’/sendMessage’, data=data) def check_message(chat_id, message): if message.lower() in [‘привет’, ‘hello’]: send_message(chat_id, ‘Привет :)’) else: reply_keyboard(chat_id, ‘Я не понимаю тебя :(‘) def geocoder(latitude, longitude): token = ‘pk.токен’ headers = address = requests.get(f’https://eu1.locationiq.com/v1/reverse.php?key=lon= message[‘update_id’]: update_id = message[‘update_id’]# Присваиваем ID последнего отправленного сообщения боту if (user_message := message[‘message’].get(‘text’)): # Проверим, есть ли текст в сообщении check_message(message[‘message’][‘chat’][‘id’], user_message) # Отвечаем if (user_location := message[‘message’].get(‘location’)): # Проверим, если ли location в сообщении latitude = user_location[‘latitude’] longitude = user_location[‘longitude’] send_message(message[‘message’][‘chat’][‘id’], geocoder(latitude, longitude)) if __name__ == ‘__main__’: run()

Еще по теме:  ВК тостер на Айфон скачать через Телеграм

Проверим как работает.

Телеграм бот Python

Ответ с местоположением выглядит смешно :), но это сделано для демонстрации. Вы можете в функции geocoder заменить address.get(«display_name») на address[«address»].get(«town») и в ответ получать только название города.

Конец

Теперь вы знаете как работать с геолокацией пользователя. Надеюсь полученный знания помогут вам реализовать, что ни будь интересное в вашем проекте. Если у вас есть пожелания для следующей части, прошу отпишите мне в обратной связи.

Комментарии

ballout

13 марта 2023

Привет, огромное спасибо за предоставленный код! очень помогло! Хотел спросить, как сделать чтобы когда я нажимал на «позицию» мне предоставлялась информация где я нахожусь и когда я бы нажимал на кнопку «погода» то бот также запрашивал геопозицию и выдавал мне только погоду в моем городе, на этом месте у меня полетела логика, так как когда я все сделал то у меня при нажатии на кнопку присылается сразу два сообщения, код внизу, буду очень благодарен если кто поможет!

Рамис

14 марта 2023

ballout

15 марта 2023

Источник: ramziv.com

Бот в Телеграме для поиска информации по номеру телефона, как пользоваться

Бот в Телеграме для поиска информации по номеру телефона, как пользоваться

Интернет – сеть со свободным доступом. Данные о пользователях остаются и оседают на серверах сайтов, социальных сетей, форумов, мессенджеров. Если знать, где искать, можно найти мобильный, адрес, улицу. Услуги по поиску информации разделяются на платные и бесплатные. За деньги узнают все, бесплатно – можно попробовать найти хоть что-то. Один из типовых инструментов пробива информации – боты в Телеграме, которые осуществляют поиск по номеру телефона.

Боты Телеграма для проверки номера телефона

  • пользователь передает свои контакты и их названия;
  • после этого он получает доступ к базе данных с контактами других людей;
  • за счет притока новых человек количество контактов в базе увеличивается.
Еще по теме:  Как снести частный канал в Телеграме

Телеграм

Таким образом можно пробить номер, в записной книжке.

Несколько примеров подобных каналов:

  • BMI NP – по номеру мобильного можно найти регион и оператора. Полезно, когда звонит кто-то по межгороду, и нужно понять, что это за человек может быть;

Бот

  • GET FB – дает ссылку на страницу профиля, если у него указан контактный телефон в Фейсбуке;
  • AVINFO – ссылка на автомобильный транспорт и объявление на Авито;

АвитоБот

  • Глаз Бога – полный софт для получения информации о человеке. Его контакты, ссылки, адреса. Если есть в базе – значит, уже публичное.

Глаз Бога

Есть и другие аналогичные, но они не дают таких полных данных, как приведенные выше. Стандартный функционал, такой, как «запись в телефонной книге» – есть в Глазе Бога.

Инструкция по применению бота

Пробить номер телефона не слишком сложно. Из-за того, что сейчас много публичной информации, даже сотрудники органов могут быть под прицелом. Вдобавок, в такие каналы сливается много информации от инсайдеров и других лиц, у которых есть доступ.

Функционал упрощенный: придется подписаться на бота, нажать на кнопку «Старт» или аналогичную. Далее нужно ввести сотовый или другие данные. Потом будет свежая информация.

Слив баз данных тоже играет роль в том, что много информации попало в открытый доступ.

Совет для пользователей: внимательно следить за всем, что попадает в интернет. Оттуда потом это будет удалить сложнее.

Источник: it-tehnik.ru

Как с помощью телеграмм бота узнать о себе

Будь в курсе последних новостей из мира гаджетов и технологий

iGuides для смартфонов Apple

Российский Telegram-бот определяет пол и возраст человека по фото с точностью 99.7%

Денис

Денис Черкашин — 22 августа 2017, 20:10

telegram

Российская компания VisionLabs разработала Telegram-бота, который умеет определять пол и возраст человека по фотографии. Разработчики утверждают, что бот определяет данные с точностью 99.7%.

Telegram

Дональду Трампу и Владимиру Жириновскому 71 год.

Оценка возраста зависит от освещения, но пол бот всегда определяет верно. На снимке должен быть только один человек.

В основе бота лежит платформа LUNA и нейросетевая технология распознавания лиц. Нейросеть обучили на сотнях тысяч фотографий.

Источник: www.iguides.ru

Рейтинг
( Пока оценок нет )
Загрузка ...