我希望能够在电报中向集体聊天发送一条信息。我想要运行一个python脚本(这使得一些已经工作的操作),然后,如果一些参数有一些值,脚本应该通过Telegram向群聊天发送一条消息。我正在使用Ubuntu和Python2.7
我认为,如果我没有错的话,我有两种方法可以做到:
我认为第一条路更长,所以使用第二种方式可能是个好主意。
在这种情况下,我真的不知道该怎么做。我不太了解linux中的脚本,但我尝试这样做:
#!/bin/bash
cd /home/username/tg
echo "msg user#******** messagehere" | ./telegram
sleep 10
echo "quit" | ./telegram
这是一半的工作:它正确地发送消息,但是进程仍然处于打开状态。第二个问题,我不知道如何从python调用它,以及如何将一些值传递给这个脚本。我想传递给脚本的值是"messagehere“var:这将是一个从python脚本中定义的100/200个字符消息。
有人有线索吗?谢谢你的回复,我希望这可能对其他人有用。
发布于 2014-07-03 15:26:27
首先,为电报创建一个名为巴什脚本的tg.sh:
#!/bin/bash
now=$(date)
to=$1
subject=$2
body=$3
tgpath=/home/youruser/tg
LOGFILE="/home/youruser/tg.log"
cd ${tgpath}
${tgpath}/telegram -k ${tgpath}/tg-server.pub -W <<EOF
msg $to $subject
safe_quit
EOF
echo "$now Recipient=$to Message=$subject" >> ${LOGFILE}
echo "Finished" >> ${LOGFILE}
然后将脚本放在与python脚本相同的文件夹中,并给予chmod +x tg.sh
+x权限
最后,在python中,您可以:
import subprocess
subprocess.call(["./tg.sh", "user#****", "message here"])
发布于 2015-06-26 18:32:19
电报公司最近发布了新的Bot API,这使得发送/接收消息变得微不足道。我建议您也看一看,看看它是否适合您的需要,它胜过包装客户端库或集成他们的MTProto API。
import urllib
import urllib2
# Generate a bot ID here: https://core.telegram.org/bots#botfather
bot_id = "{YOUR_BOT_ID}"
# Request latest messages
result = urllib2.urlopen("https://api.telegram.org/bot" + bot_id + "/getUpdates").read()
print result
# Send a message to a chat room (chat room ID retrieved from getUpdates)
result = urllib2.urlopen("https://api.telegram.org/bot" + bot_id + "/sendMessage", urllib.urlencode({ "chat_id": 0, "text": 'my message' })).read()
print result
不幸的是,我还没有看到任何您可以直接与之交互的Python库,但这里是我工作过的一个NodeJS等效库,以供参考。
发布于 2014-12-10 21:53:33
由于版本1.05,您可以使用-P选项接受来自套接字的消息,这是解决问题的第三个选项。很抱歉,这不是你的问题的真正答案,但我不能评论你的问题,因为我没有足够的声誉。
https://stackoverflow.com/questions/24330922
复制相似问题