Гео Телеграм как узнать

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

Уязвимость нашёл пользователь Ахмед Хасан (Ahmed Hassan). Она скрывается в опции «Люди рядом». Этот сервис позволяет найти пользователей Telegram поблизости. Вообще-то он не показывает координаты людей — только расстояние до них.

Однако есть метод узнать точное местоположение пользователей. Это может быть особенно неприятно для тех, кто выходит в Telegram с домашнего адреса. По словам Хасана, достаточно использовать метод триангуляции. Другой исследователь Андрей Копелян уже проверил уязвимость в Нур-Султане (Казахстан). Он смог вычислить адрес человека, нанеся на карту три окружности. Отследить таким способом можно только тех пользователей, которые разрешили сделать их видимыми в сервисе «Люди рядом». Чтобы избежать возможной слежки, нужно отозвать это разрешение.

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

Как создать геочат в Телеграм? Найти гео чат в Телеграм. Настроить геочаты Телеграм.

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

13 марта 2023

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

Еще по теме:  Ссылки на Телеграм с запрещенкой
Рамис

14 марта 2023

ballout

15 марта 2023

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

Telegram запустил геочаты и обмен контактами с людьми рядом

Telegram запустил геочаты и обмен контактами с людьми рядом

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

Найти людей неподалеку

В Telegram во вкладке «Контакты» появилась новая опция «Найти людей неподалеку». Нажав ее, можно увидеть список стоящих рядом людей, которые тоже в этот момент просматривают этот раздел.

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

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

add to contacts telegram

Геочаты

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

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

Там же есть опция для создания собственного чата.

Ранее издание «Код Дурова» сообщало, что геочаты будут охватывать радиус от 100 метров до 6 км.

Передача прав на канал

Ещё одним нововведением стала возможность передать права на группу или канал другому администратору. Чтобы осуществить передачу, нужно перевести пользователя в статус администратора и наделить его всеми правами. После этого появится кнопка «Transfer Ownership».

Источник: 9net.ru

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