我想通过Telegram从Python脚本发送消息。 我试图通过telegram-cli,original version from vysheng和patched version from luckydonald来做到这一点。通过这两种方式,我可以成功地向手机发送消息。 我的问题是:
<<EOF ... EOF
输入失败;程序在控制台上打开,但不输出任何内容。通过-P选项打开端口工作。然后我可以从nc环境(类似于tg wiki)进行操作,但我不确定在我的Python脚本中实现所有这些调用是否明智。
我还发现另一个脚本将命令发送到tg(忘记来源),但它也没有工作(与上面<<EOF
类似的行为)
#!/bin/bash
to=Matthias_SG
msg="test message"
tgpath=/home/matthias/dvl/tg
cd ${tgpath}
(echo "add_contact +xxx Matthias SG"; echo "msg $to $msg") | ${tgpath}/bin/telegram-cli -k tg-server.pub
所以我的问题是: 我应该回到旧版的pytg吗?我可以通过从subprocess.call或popen输入stringIO来修复shell脚本或将它们修改为Python吗?是否有人以强有力的方式使用它?
答案 0 :(得分:0)
我宁愿使用包python-telegram-bot
,它也适用于我。
您可以找到here文档和一个简单的示例来开始。
为了回复短信,您可以在CommandHandler之后添加MessageHandler,例如:
updater.dispatcher.add_handler(MessageHandler(Filters.text, text_reply))
def text_reply(bot, updater):
text = update.message.text
if text == 'ping':
reply = 'pong'
elif text == 'pong':
reply = 'ping'
# add any process to the text
else:
reply = "I only respond to ping pong"
update.message.reply_text(reply)
不要忘记导入from telegram.ext import MessageHandler
。
希望这有帮助!
答案 1 :(得分:0)
我认为使用特定的软件包制作Telegram机器人是一个坏主意;你必须保持它们的更新,它们可能不会像你那样运行,如果API的一部分发生了变化并且模块没有更新,可能会发生奇怪的事情。
对我来说真正有用的是使用基本模块并自己制作所有命令。一开始会花费更多时间。
看看this website,它们会向您展示使用json
和requests
制作机器人的基础知识。他们编写代码的方式为您提供了很多自由。
使用简单的模块,您将获得保修;您可以直接从Telegram获取所需的任何文档或帮助。
答案 2 :(得分:0)
第一步是创建一个bot并获得barplot
。
第二步是获取x <- c("Early", "Evening", "Morning", "Night" )
y <- c(0.9083699, 0.4830701, 0.3752655, 0.5393416)
barplot(y ~ x, ylim = c(0, 1), las = 2)
:
token
,并在键chat_id
下获得https://api.telegram.org/bot<YourBOTToken>/getUpdates
。最后一步是使用以下代码:
chat_id
从Medium.com: How to create a Telegram bot, and send messages with Python提取的代码