我希望能够在Telegram中向群聊发送消息。我想运行一个python脚本(它可以进行一些已经工作的操作),然后,如果一些参数有一些值,脚本应该通过Telegram向群聊发送消息。我使用Ubuntu和Python 2.7
如果我没记错的话,我有两种方法:
- 方法一:让Python脚本直接连接到Telegram API并发送消息(https://core.telegram.org/api)。
- 方法二:让Python脚本调用Telegram的CLI(https://github.com/vysheng/tg),向其传递一些值,然后消息由Telegram的CLI发送。
我认为第一种方法更长,所以一个好主意可能是使用第二种方法。
在这种情况下,我真的不知道如何继续下去。我不太了解linux的脚本,但我试着这样做:
#!/bin/bash
cd /home/username/tg
echo "msg user#******** messagehere" | ./telegram
sleep 10
echo "quit" | ./telegram
这在一半的工作:它正确地发送消息,但随后进程保持打开。第二个问题,我不知道如何从Python调用它,以及如何向这个脚本传递一些值。我想传递给脚本的值是“messagehere”var:这将是从Python脚本内部定义的100/200个字符的消息。
有人知道这方面的线索吗?谢谢你的回复,我希望这对其他人有用。
7条答案
按热度按时间roejwanj1#
Telegram最近发布了他们的新Bot API,这使得发送/接收消息变得微不足道。我建议你也看看它,看看它是否符合你的需要,它比 Package 客户端库或与他们的MTProto API集成要好。
不幸的是,我还没有看到任何可以直接与之交互的Python库,但这里有一个我开发的NodeJS等效库供参考。
n1bvdmb62#
从版本1.05开始,您可以使用-P选项接受来自套接字的消息,这是解决问题的第三个选项。很抱歉,这不是你问题的答案,但我不能评论你的问题,因为我没有足够的声誉。
nkkqxpd93#
首先为telegram创建一个名为www.example.com的bash scripttg.sh:
然后将该脚本放在与python脚本相同的文件夹中,并使用
chmod +x tg.sh
给予它+x权限最后,从Python中,你可以做到:
rjee0c154#
我正在使用pytg,可以在这里找到:A Python package that wraps around Telegram messenger CLI
效果很好。我已经有了一个基于那个项目的Python机器人
x3naxklr5#
您可以使用
safe_quit
来终止连接,因为它会等到所有事情都完成后才关闭连接并终止应用程序使用这个作为一个简单的脚本,并从python代码调用它作为另一个答案建议。
lmvvr0a86#
我推荐第一种选择。
一旦您熟悉了生成AuthKey,您就应该开始掌握文档。
为了提供帮助,我写了一个详细的分步指南,介绍如何从头开始编写AuthKey生成代码here。
它在www.example.com中vb.net,但是这些步骤应该可以帮助你在python中做同样的事情。
czq61nw17#
在这里,我将@ChrisBrand非常方便和最小的答案移植到了Python 3中,它在Python 2中工作。原来的版本也不能开箱即用,所以我自动提取了一个适当的
chat-id
参数,它允许您对阅读的第一条消息的发件人进行响应。请注意,如果您到目前为止还没有收到任何消息,则此操作将失败。最后,我从环境中读取了
bot_id
,这样它就不会出现在任何源代码中。要使用它,至少在Linux上,首先执行export TELEGRAM_TOKEN=<value via botfather>