如何通过python在电报机器人中获取实时位置?

问题描述:

我正在使用 python-telegram-bot 库.我想跟踪用户的实时位置,但是我不知道该怎么做.我尝试使用Job Queue:

I'm using the python-telegram-bot library. I want to track a user's Live Location, but I don't know how to do it. I try to use Job Queue:

def notification(bot, job):
  updates = bot.get_updates()
  print([u.message.location for u in updates])
# Add job to queue

job = job_queue.run_repeating(notification, 10, 1, context=chat_id)
chat_data['job'] = job

但是更新无效.我想每1分钟跟踪一次位置.

But updates are void. I want to track location every 1 minutes.

只需要在Seans上进行ellaborate回答:使用 python-telegram-bot 库可以很容易地完成.每当位置更新时,都可以在 update.edited_message 中找到.当然,只有在用户手动与漫游器共享实时位置的情况下,此方法才起作用.

Just to ellaborate on Seans answer: It can be done quite easily using the python-telegram-bot library. Whenever the location did update it can be found in update.edited_message. This only works if the user is manually sharing live location with the bot of course.

def location(bot, update):
    message = None
    if update.edited_message:
        message = update.edited_message
    else:
        message = update.message
    current_pos = (message.location.latitude, message.location.longitude)

location_handler = MessageHandler(Filters.location, location)
dispatcher.add_handler(location_handler)