【问题标题】:get location of telegram robot owner获取电报机器人所有者的位置
【发布时间】:2017-07-31 06:30:09
【问题描述】:

在我的脚本中,我想获取电报机器人所有者的位置,当用户单击按钮时,机器人将所有者的位置以谷歌地图图像的形式发送给用户。 我的脚本是:

import telepot
from telepot.loop import MessageLoop
import time
from gps3 import gps3

bot = telepot.Bot('mytoken')
def handle(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    gps_socket = gps3.GPSDSocket()
    data_stream = gps3.DataStream()
    gps_socket.connect()
    gps_socket.watch()
    for new_data in gps_socket:
        if new_data:
            data_stream.unpack(new_data)
            alt = data_stream.TPV['alt']
            lat = data_stream.TPV['lat']
    bot.sendMessage(chat_id ,  alt)



MessageLoop(bot, handle).run_as_thread()
 while 1:
    time.sleep(1)

我在我的笔记本电脑上运行这个脚本,因为我的笔记本电脑没有 gps 我得到错误,当我用我的 android 手机运行它时它应该可以工作但我得到同样的错误

【问题讨论】:

  • OWNER BOT 是什么意思?
  • 对不起机器人主人。
  • 你希望你的android如何运行python脚本?
  • 我在笔记本电脑的 pycharm 中运行此脚本,并在我的 android 中运行电报

标签: python gps


【解决方案1】:

我无法对此进行全面测试,但如果笔记本上缺少 GPS 是您唯一的问题,那么如果您在测试时像这样替换大量代码会发生什么? :

import telepot
from telepot.loop import MessageLoop
import time

bot = telepot.Bot('mytoken')
def handle(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    lat = 53.540442
    long = 9.996381
    alt = 53.432        
    bot.sendMessage(chat_id ,  alt)

MessageLoop(bot, handle).run_as_thread()
 while 1:
    time.sleep(1)

只要给它想要的坐标,并尝试让脚本的 Telegram 部分工作。可能sendMessage 想要的不仅仅是海拔……

【讨论】:

  • 我在我的笔记本上运行这个脚本,它可以工作,我没有收到任何错误,但它只是发送一个数字(alt = 53.432)并且没有发送任何位置或谷歌地图图像到电报机器人。
  • 当我用 bot.sendlocation(chat_id , lat,long,alt) 替换 bot.sendmessage 时,它​​会向我的 bot 发送一个位置。在我的想法中,机器人所有者是可变的,它不是恒定的,所以我可以不要使用常量 alt、long 和 lat 数字
  • 这个想法只是为了帮助您在 PC 上进行测试时消除 GPS 问题,以便您可以专注于其中的telepot 部分。如果你想要所有者变量,你不能只在顶部定义 bot1=.. , bot2=.. 并在底部定义几个 MessageLoop 命令(在测试时)。如果它有帮助,不要忘记投票..看着@ 987654321@ 我什至不确定你是否需要handle
  • 是的,谢谢,我理解您的意思。谢谢您的回复,我试图在 android 中获取纬度和经度,然后将它们定义为变量“lat”和“long”,然后我可以发送位置有了这些参数。当然你帮我非常感谢你
  • 祝你好运!本来要说你需要 Python 以外的语言来做到这一点,但在这里找到了 this questionGitHub
猜你喜欢
  • 2017-04-10
  • 2017-09-11
  • 2018-07-17
  • 1970-01-01
  • 2017-08-18
  • 2018-07-18
  • 2022-06-10
  • 2021-02-13
  • 1970-01-01
相关资源
最近更新 更多