生命不息
折腾不止

使用telegram-cli命令行发送信息,可用于各种即时提醒

最早是我用 zabbix 想要及时接收报警找到的这个方法。微信发消息要申请公众号,短信要钱,邮箱不是太及时。 telegram 是目前最方便的手段,这个可以作为各种接口发送各种信息。

安装 telegram-cli 命令行

如果是 centos 的话,非常简单。。直接 yum 安装就可以了。

yum install -y telegram-cli

如果是其他系统。。那就要下载源代码进行编译安装了。。比如 Ubuntu 和 Debian 可以用下面的代码编译安装:

sudo apt-get install -y git libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make 
git clone --recursive https://github.com/vysheng/tg.git && cd tg
./configure
make

更多的系统编译安装可以看 官方的 github

激活 API

安装好后,我们需要去拿到 telegram 的密钥。访问 telegram 的网站
https://my.telegram.org/apps

登陆后就可以看到下面的界面

你可以新建一个文件,然后把 public key 的内容复制进去并保存

   vi /root/tg-server.pub

第一次使用需要手动连接下服务器

执行以下命令来手动连接次,执行以下代码来带着 public key 连接:

/bin/telegram-cli -k /root/tg-server.pub

如果是通过编译安装的, telegram-cli 命令则在编译目录的 bin 目录下 , 代码改成 /root/tg/bin/telegram-cli -k /root/tg-server.pub

出现命令行后,按下 TAB 键,就会出现让你输手机号的界面:

输入手机号后会出现让你输验证码,流程和你登陆客户端是一样的。把收到的验证码输入就可以了

登陆成功后就可以发送命令来测试了,你可以给自己发个消息试试:

msg @ 用户名   发送的消息 

输入 quit 就可以退出命令行了。
跟多的命令可以看 官方的 wiki

写脚本来发送消息

在这台服务器登陆过一次后,以后就都不需要登陆了,这样我们就可以用命令行来直接发送消息了。
我们新建个脚本:

vi /root/tg.sh

输入以下代码

#!/bin/bash
to=$1
msg=$2
/bin/telegram-cli -W -e "msg $to $msg"

如果是编译安装的, telegram-cli 的位置在编译目录的 bin 目录下,记得把命令改成:
/root/tg/bin/telegram-cli -W -e "msg $to $msg"

以后就可以在其他程序里面调用这个脚本了。

bash tg.sh @www91yunorg testmsg

就会向 www91yunorg 用户发送消息: testmsg

题外话

相对于短信和微信, telegram 要简单很多,而且免费,唯一的缺点就是国内用不了 = = 因为 tg 的服务器被墙了。你可以把调用放在国外,远程调用发消息。

另外就是最好重新注册个账号发消息,虽然自己也可以给自己发,不过好像客户端并不会有声音提示。所以还是用其他账号发比较好。

为了测试发了不少消息,最后的成效就是这样:

赞(6)
未经允许不得转载:91云(91yun.co) » 使用telegram-cli命令行发送信息,可用于各种即时提醒

留言 10

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    国内的服务器挂了代理也不行

    oniyou3年前 (2021-06-25)回复
  2. #0

    /bin/telegram-cli -k /root/tg-server.pub进入命令行界面后没有提示输入手机号,按tab也没有提示输入手机号,只是显示help等各种命令的用法……

    Oniyou3年前 (2021-06-11)回复
  3. #0

    登陆后没有telegram available MTProto,让部署新application,是哪里做错了吗

    fantysy40628年前 (2017-04-04)回复
  4. #0

    推荐看看Server酱,推送到微信的…

    若白8年前 (2017-04-01)回复
  5. #0

    Mark
    请问这个能支持群聊吗?

    Yandex8年前 (2017-03-31)回复
    • 已经加入过是可以的。具体到他们官方的github看

      91yun8年前 (2017-04-01)回复
    • 貌似可以~~~

      Michael8年前 (2017-04-02)回复
  6. #0

    提醒一下,如果提示“FAIL: 38: can not parse arg #1”的话,需要先在手机上给要发送的账号聊一句才能用msg命令。

    Steve-luo8年前 (2017-03-31)回复
    • 命令行下好像是,不过脚本却可以直接发

      91yun8年前 (2017-03-31)回复
      • 脚本也不行,求解决方法

        qiubangzhu7年前 (2018-02-27)回复