Бот в Телеграмме для вычисления геолокации

Содержание

Objects of this class are comparable in terms of equality. Two objects of this class are considered equal, if their longitute and latitude are equal.

  • longitude ( float ) – Longitude as defined by sender.
  • latitude ( float ) – Latitude as defined by sender.
  • horizontal_accuracy ( float , optional) – The radius of uncertainty for the location, measured in meters; 0-1500.
  • live_period ( int , optional) – Time relative to the message sending date, during which the location can be updated, in seconds. For active live locations only.
  • heading ( int , optional) – The direction in which user is moving, in degrees; 1-360. For active live locations only.
  • proximity_alert_radius ( int , optional) – Maximum distance for proximity alerts about approaching another chat member, in meters. For sent live locations only.
  • **kwargs ( dict ) – Arbitrary keyword arguments.

Longitude as defined by sender.

Latitude as defined by sender.

Type:
float

Optional. The radius of uncertainty for the location, measured in meters.

Type:
float

Optional. Time relative to the message sending date, during which the location can be updated, in seconds. For active live locations only.

Optional. The direction in which user is moving, in degrees. For active live locations only.

Type:
int

Optional. Maximum distance for proximity alerts about approaching another chat member, in meters. For sent live locations only.

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

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

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

Рамис
ballout

Как отправлять локации пользователю в телеграм боте (python)?

Я совсем новичок в Python, по всяким обучалкам сделала основу и кнопки. Застряла на запросе локации у пользователя. В Telegram API сказано что это делается через request_location = True. Но не понимаю куда это вписать. Поэтому вопрос #1: Каждую кнопку на клавиатуре отдельно делать и приписывать request_location = True или есть вариант сразу всем кнопкам присвоить этот параметр?

И вопрос #2: дальше совсем не понятно как определять радиус и отправлять места с карты? Мне не обязательно код весь расписывать, хотя бы просто подскажите как это гуглить? А то по моим запросам ничего толкового не находится.

Примеры, как выглядит бот
5eb009880817d513683210.png5eb0098d982f8246489054.jpeg

import telebot
bot = telebot.TeleBot(‘токен’)

Location¶

class telegram. Location ( longitude , latitude , horizontal_accuracy = None , live_period = None , heading = None , proximity_alert_radius = None , * , api_kwargs = None ) [source] ¶ Bases: telegram.TelegramObject This object represents a point on the map. Objects of this class are comparable in terms of equality. Two objects of this class are considered equal, if their longitude and latitude are equal.

  • longitude ( float ) – Longitude as defined by sender.
  • latitude ( float ) – Latitude as defined by sender.
  • horizontal_accuracy ( float , optional) – The radius of uncertainty for the location, measured in meters; 0- 1500 .
  • live_period ( int , optional) – Time relative to the message sending date, during which the location can be updated, in seconds. For active live locations only.
  • heading ( int , optional) – The direction in which user is moving, in degrees; 1 — 360 . For active live locations only.
  • proximity_alert_radius ( int , optional) – Maximum distance for proximity alerts about approaching another chat member, in meters. For sent live locations only.
Еще по теме:  Активность в Телеграмме чужого человека приложение

Longitude as defined by sender.

Latitude as defined by sender.

Optional. The radius of uncertainty for the location, measured in meters; 0- 1500 .

Optional. Time relative to the message sending date, during which the location can be updated, in seconds. For active live locations only.

Optional. The direction in which user is moving, in degrees; 1 — 360 . For active live locations only.

Optional. Maximum distance for proximity alerts about approaching another chat member, in meters. For sent live locations only.

Источник: laptopprocessors.ru

Функция Telegram позволяет запросто вычислить местоположение пользователей — если не поправить настройки

Через опцию «Люди рядом» в Telegram можно установить геопозицию пользователей при помощи триангуляции, сообщает Android Police.

Далее нужно перейти в Google Earth Pro, ввести три набора координат и нарисовать вокруг «себя» круги радиуса, указанного Telegram. Точка пересечения трёх кругов укажет точное местоположение искомого человека.

Приватность и безопасность — одни из главных преимуществ Telegram, отмечает Android Police. Во многом благодаря этому миллионы людей предпочитают его альтернативам вроде Facebook и WhatsApp.

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

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

Источник: devby.io

Можно ли вычислить местоположение в телеграмме

Telegram позволяет за несколько минут вычислить точные координаты своих пользователей, использующих встроенный сервис «Люди рядом». Алгоритм обнаружения прост, что дает возможность следить за нужным человеком даже тем, у кого нет никаких навыков хакинга.

Можно ли вычислить по IP в телеграмме?

Глава компании «Интернет-поиск» Игорь Бедеров сообщил о новой совместной разработке с T. Hunter. С ее помощью можно узнать IP-адрес любого пользователя мессенджера Telegram.

Можно ли вычислить местоположение в телеграмме

Как работает геолокация в телеграмме?

В Telegram геолокацию можно расшарить для одного собеседника или для чата. Нужно зайти в меню вложения (значок скрепки), выбрать опцию «Геопозиция» и «Транслировать мою геопозицию», а затем выбрать срок трансляции. Остановить трансляцию можно кликом по ее окошку в чате и кликом «Остановить трансляцию».

Как отследить где находится человек?

Рассмотрим удобные приложения, которые помогут найти близких людей.

  1. ГДЕ МОИ ДЕТИ: ЛОКАТОР ДЛЯ ТЕЛЕФОНА И GPS-ЧАСОВ 0+
  2. GEOZILLA – СЕМЕЙНЫЙ ЛОКАТОР. GPS ТРЕКЕР
  3. СЕМЕЙНЫЙ ЛОКАТОР ZOEMOB.
  4. GPS – ТРЕКЕР LIFE 360.
  5. FAMILY LOCATOR – PHONE TRAKER.
  6. FRIEND LOCATOR.
  7. PHONERADAR ОНЛАЙН
  8. GEOLOCATOR.

Что можно узнать через Телеграм?

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

Можно ли пробить человека в телеграмме?

Как отслеживают по IP?

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

Как можно отследить местонахождение телефона?

Как узнать, где находится устройство, заблокировать его или удалить с него данные

  1. Откройте страницу android.com/find в браузере.
  2. Войдите в аккаунт Google. …
  3. На потерянное устройство придет уведомление.
  4. На карте появится информация о том, где находится устройство.
Еще по теме:  Почему в ТГ канале просмотров больше чем подписчиков если канал частный

Как отключить местоположение в телеграмме?

Как отключить функцию Люди рядом в телеграмме

Чтобы отключить отображение своего профиля, нужно перейти в мобильной версии мессенджера в «Контакты» → «Найти людей рядом». Отключить отображение профиля можно в любой момент, нажав на кнопку «Не показывать меня» на главной странице профиля.

Как узнать где находится человек в телеграмме?

Слежка при помощи Telegram

Уязвимость скрывается в сервисе «Люди рядом», встроенном в мессенджер. С его помощью можно находить пользователей Telegram, находящихся поблизости – их место дислокации определяется по GPS-координатам и отслеживается в реальном времени.

Как определить местонахождение абонента без его ведома?

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

Кто видит мои действия в Телеграм?

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

Что хранится в базе данных Телеграм?

Как утверждает издание Bleeping Computer, в общую базу направляются все сообщения, вне зависимости от того, используется «секретный» режим переписки или «облачные чаты». Стоит отметить, что Telegram Desktop не поддерживает секретные чаты как таковые, это функция доступна только в мобильных клиентах.

Как найти человека в телеграмме не зная ничего?

Что дает анонимность в телеграмме?

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

Как сделать так чтобы твой IP не узнали?

Сервис VPN – пожалуй, самый быстрый и простой способ скрыть IP-адрес. по номеру телефона?

Чтобы проверить не являетесь ли вы объектом слежения через данные, проходящие через ваше устройство, на любом телефоне достаточно ввести комбинацию на клавиатуре *#21#, а затем нажать клавишу вызова. После этого на экране отобразится информация о подключенной услуге переадресации.

Как найти кого то в телеграмме?

Как найти в Telegram человека

Как посмотреть кто рядом в телеграмме?

Чтобы увидеть пользователей Telegram поблизости, а также включить отображение своего профиля, нужно перейти в «Контакты» → «Найти людей рядом». В обновлении Telegram для Android до версии 7.3, пункт «Люди рядом» вынесен в боковое меню, без надобности перехода в «Контакты».

Как убрать местоположение в телеграмме?

0:33Suggested clip 47 secondsКак в Telegram отключить отображение вашего профиля в …Start of suggested clipEnd of suggested clip

Как узнать кто удалил переписку в телеграмме?

Об удалении чатов

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

Сколько времени Телеграм хранит переписку?

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

Как человек может найти в телеграмме?

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

Можно ли найти человека в телеграмме без номера?

Как скрыть нахождение в телеграмме?

В приложении откройте «Настройки» → «Конфиденциальность». Перейдите в раздел «Последняя активность». Здесь можно задать настройки как для групп пользователей, так и для отдельных контактов. Например, можно выбрать «Никто», но внести несколько пользователей-исключений в список «Всегда показывать».

Вам также может быть интересно

Когда работодатель обязан обеспечить СИЗ

Когда работодатель обязан обеспечить СИЗ Работодатель обязан обеспечить приобретение и выдачу прошедших в установленном

Куда обращаться по вопросам начисленных сумм в едином платежном документе Епд )

Куда обращаться по вопросам начисленных сумм в едином платежном документе Епд ) Куда обращаться

Куда обратиться для отключения радиоточки

Куда обратиться для отключения радиоточки Отключение радиоточкиНужно прийти в фирму, которая предоставляет услуги вещания

Как отправить деньги детям Донбасса

Как отправить деньги детям Донбасса Если Вы хотите передать имущество либо заключить отдельный договор

Источник: ostrovtenerife.ru

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