如何通过python在telegram bot中获取实时位置?

2024-04-26 01:16:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python-telegram-bot库。 我想跟踪用户的实时位置,但我不知道如何去做。 我尝试使用作业队列:

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分钟追踪一次位置。在


Tags: 用户messageget队列queuedefbot作业
2条回答

您的更新应该look like this。在

它只包含.message.location中的第一个位置,最新的位置是.edit_message.location,其他位置都将消失,因此您需要自己录制。在

只是想告诉肖恩斯答案: 使用python telegram bot库可以很容易地完成。无论何时更新位置,都可以在update.edited_message中找到它。当然,这只适用于用户手动与机器人共享实时位置的情况。在

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)

相关问题 更多 >