Инструкция для поделиться локацией в Телеграм

Начиная с Telegram 4.4 , вы можете передавать своё текущее местоположение (геопозицию) в любой чат в режиме реального времени.

Это полезно например, когда вы находитесь на пути к важной встрече или пытаетесь координировать работу с друзьями на большом мероприятии. Вместо того, чтобы каждую минуту отправлять статические данные о своём местоположении, вы можете поделиться своей живой геолокацией с теми людьми, с которыми вы встречаетесь, в течение 15 минут, 1 часа или 8 часов.

Чтобы использовать эту функцию, выберите «Местоположение» затем в меню вложения выберите «Поделиться своим местоположением для …»:

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

Новый аудиоплеер

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

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()

Еще по теме:  Telegram как сделать супергруппу

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

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

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

Конец

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

Комментарии

ballout

13 марта 2023

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

Рамис

14 марта 2023

ballout

15 марта 2023

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

Как создать геочат в Telegram

Ранее появившаяся опция «Геочат» в телеграмме, быстро набрала обороты и стала популярна среди многих пользователей. Основной ее идеей является то, что юзеры могут находить группы или других пользователей поблизости.

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

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

Что такое геочат

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

Еще по теме:  Телеграмм как создать ник

Далее мы поговорим как же именно создается геочат в месседжере телеграмм.

Как создать

На сегодняшнее время создать геочат можно только на телефоне, благодаря его опции Геоданные (Локация, GPS и др. названия). На компьютере же сделать это пока нельзя: ни создать геочат, ни найти группы, либо других людей поблизости.

Рассмотрим в следующем разделе как этим всем можно воспользоваться.

На телефоне

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

Функция активирована? Тогда все окей, можем переходить к инструкции создания геочата в телеграмме. Выглядит она следующим образом:

  1. Открываем приложение телеграмм на телефоне и выдвигаем шторку слева с помощью кнопки в виде трех линий.
  2. Далее переходим в раздел «Контакты».
  3. Воспользуемся функцией «Найти людей рядом».
  4. В появившемся окне будут отображены люди и группы, находящиеся поблизости. Чтобы создать свой геочат, кликаем по кнопке «Локальная группа».
  5. Далее нажимаем на кнопку «Создать группу».
  6. Вводим название группы и нажимаем на кнопку в виде галочки, расположенную в нижнем правом углу.

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

На компьютере

На сегодняшнее время создать геочат можно только на телефоне, благодаря его опции Геоданные (Локация, GPS и др. названия). На компьютере же сделать это пока нельзя: ни создать геочат, ни найти группы, либо других людей поблизости.

На этом наша статья заканчивается, надеемся, что вышесказанный материал был полезен для вас и теперь вы знаете как создать геочат в мессенджере телеграмм. Напомним, что сделать это можно через вкладку «Контакты». Удачи в освоении!

Рекомендуемые сервисы для Telegram:

  • Godlikes — Качественные подписчики по специальной цене! Стоимость 1-го подписчика всего 5,5 рубля! ⚡️ 5 дней контроля отписок!
  • Morelikes — Накрутка просмотров: 128 руб. за 100 шт., подписчиков: боты от 0.74 руб , живые подписчики от 3.36 руб. за 1 шт.
  • Bosslike.ru — ⚡️⚡️⚡️ Бесплатные подписчики и просмотры ⚡️⚡️⚡️
  • Mrpopular — подписчики от 0.14 руб ⚡️; просмотры от 0.09 руб ⚡️

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

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