Привет , я бы хотел, чтобы мой чат-бот на Python мог определять местоположение пользователей. Я не могу найти код для этого — вы можете помочь?
def testbot_basic(): def handle(msg): content_type, chat_type, chat_id = telepot.glance(msg) if content_type == ‘text’: bot.sendMessage(chat_id,»ciao sono un Bot») print(bot.getMe()) pprint(bot.getUpdates()) bot = telepot.Bot(‘xxxxxxxxxxxxx’) print(bot.getMe()) pprint(bot.getUpdates()) #per ogni messaggio ricevuto viene aperta una istanza della funzione handle bot.message_loop(handle) print (‘Listening . ‘) # diamo 10 secondi di pausa while 1: time.sleep(5)
user1672426 08 фев ’20 в 01:14 2020-02-08 01:14
2020-02-08 01:14
1 ответ
if content_type == ‘location’: print(msg[‘location’]) print(msg[‘location’][‘latitude’]) print(msg[‘location’][‘longitude’])
Источник: stackru.com
Геолокация в Телеграм
Где брать координаты местоположения в telegram bot api?
Вначале необходимо запросить координаты у пользователя, кнопка должна иметь ‘request_location’ => true:
Подробнее смотри как: https://core.telegram.org/bots/api#replykeyboardmarkup и ниже про саму кнопку запроса локации.
Потом придет ответ(если пользователь поделится), где будут указана локация в виде:
Кстати, если хотите цифрами показать локацию, то отправляйте просто через sendMessage. При отправке sendLocation телеграм отправит отметку на карте.
Ответ написан более трёх лет назад
Нравится 3 6 комментариев
А еще как в кнопке то это записать? ‘request_location’ => true:
stamdyscias: я питон не знаю(переменной обзови клавиатуру), но формат такой и он общий для всех языков:
И это надо отправить sendMessage(chat_id, text, наша_кастомная_клавиатура)
подскажи где их можно словить .
Мне нужен массив данных с двумя значениями «location»:
Через текст я не могу словить и через call_back_data. .
в массиве $message -> location .
прилетело то что надо:
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Недавно столкнулся с такой же ‘проблемой’ (после решения не кажется сложной).
Итак, как же поймать location?
Кратко:
Настроить mesage handler ловить update с непустым location после нажатия кнопки
Длинно:
- Для юзеров pyTelegramBotAPI
- Для ребяток, которые используют python-telegram-bot:
dispatcher.add_handler(MessageHandler(Filters.location, location)) def location(bot, update): print(update.message.location)
Источник: qna.habr.com