使用Telegram - API或CLI发送消息?

Mic*_*ele 31 python linux shell python-2.7 telegram

我希望能够在Telegram中向群聊发送消息.我想运行一个python脚本(这使得一些操作已经有效)然后,如果某些参数有一些值,脚本应该通过Telegram向群聊发送消息.我使用的是Ubuntu和Python 2.7

我想,如果我没有错,我有两种方法可以做到:

我认为第一种方式更长,所以一个好主意可能是使用Way Two.

在这种情况下,我真的不知道如何继续.我不太了解linux中的脚本,但我试着这样做:

#!/bin/bash
cd /home/username/tg
echo "msg user#******** messagehere" | ./telegram
sleep 10
echo "quit" | ./telegram
Run Code Online (Sandbox Code Playgroud)

这工作在一半:它正确地发送消息,但然后该过程保持打开状态.第二个问题,我不知道如何从python调用它以及如何将一些值传递给这个脚本.我想传递给脚本的值是"messagehere"var:这将是一个100/200字符的消息,从python脚本中定义.

有人有任何线索吗?感谢您的回复,我希望这可能对其他人有用.

Chr*_*and 30

Telegram最近发布了他们的新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
Run Code Online (Sandbox Code Playgroud)

不幸的是,我没有看到任何可以直接与之交互的Python库,但这里有一个NodeJS等价物,我参与其中.

  • 我用一些 Python 示例更新了答案。我在 NodeJS 中使用了 API,但示例代码应该可以正常工作。 (2认同)
  • 这应该是恕我直言的答案. (2认同)

小智 10

从版本1.05开始,您可以使用-P选项接受来自套接字的消息,这是解决问题的第三个选项.很抱歉,这不是你的问题的答案,但我无法评论你的问题,因为我没有足够的声誉.


Gui*_*edo 5

首先为名为tg.sh的电报创建一个bash脚本:

#!/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}
Run Code Online (Sandbox Code Playgroud)

然后将脚本放在与python脚本相同的文件夹中,并赋予它+ x权限 chmod +x tg.sh

最后从python,你可以做到:

import subprocess
subprocess.call(["./tg.sh", "user#****", "message here"])
Run Code Online (Sandbox Code Playgroud)


小智 5

我正在使用pytg,可以在这里找到: 一个包装Telegram messenger CLI的Python包

它的效果非常好.我已经有一个基于该项目的python bot