Где брать координаты местоположения в telegram bot api?

Здравствуйте, надо по нажатию кнопки найти локацию, а после прислать ее пользователю
@bot.message_handler(content_types=['text'])
def send_location(message):
    if message.text == "where I am?":
        bot.send_chat_action(message.from_user.id, 'find_location')
        bot.send_location(message.from_user.id, ) <- в этой строке загвоздка с координатами, откуда их брать?
  • Вопрос задан
  • 24047 просмотров
Пригласить эксперта
Ответы на вопрос 3
Вначале необходимо запросить координаты у пользователя, кнопка должна иметь 'request_location' => true:
Подробнее смотри как: https://core.telegram.org/bots/api#replykeyboardmarkup и ниже про саму кнопку запроса локации.
Потом придет ответ(если пользователь поделится), где будут указана локация в виде:
"location":{"latitude":xx.xxxxxx,"longitude":yy.yyyyyy}

Кстати, если хотите цифрами показать локацию, то отправляйте просто через sendMessage. При отправке sendLocation телеграм отправит отметку на карте.
Ответ написан
@tyurikov
@bot.message_handler(content_types=['location'])
def handle_loc(message):
    print(message.location)

прилетело то что надо:
{'longitude': xx.xxxxxx, 'latitude': yy.yyyyyy}
Ответ написан
Комментировать
Mr_Pod
@Mr_Pod
Недавно столкнулся с такой же 'проблемой' (после решения не кажется сложной).
Итак, как же поймать location?

Кратко:
Настроить mesage handler ловить update с непустым location после нажатия кнопки
Длинно:
  1. Для юзеров pyTelegramBotAPI
  2. Для ребяток, которые используют python-telegram-bot:
    dispatcher.add_handler(MessageHandler(Filters.location, location))
    
    def location(bot, update):
        print(update.message.location)

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы