最早我一直用TB bot发送网站的一些运行结果,后来遇到一些要签到或者打卡的活动,这些需要定时去发送checkin等之类的命令,研究了下telegram cli,初步实现了功能,记录下相关过程。
实现telegram普通账号定时公布信息,定时签到(ps:不是机器人bot)
1、首先建立一个文件夹

mkdir tg_cli && cd tg_cli

2、下载文件,这个项目最早是本地版,后来有人搞成了docker,我还是喜欢在本地操作。
本地项目地址:https://github.com/vysheng/tg
docker地址:https://registry.hub.docker.com/r/kukudemajia/tg_cli

yum -y install git 
yum update -y nss curl libcurl 
git clone --recursive https://github.com/vysheng/tg.git && cd tg 
yum -y install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel jansson-devel python-devel gcc 
./configure && make

如果卡死,就中断,多来几次make
至此就装好了,启动程序在tg目录下的bin/telegram-cli
3、登陆之前,需要先申请public key,先建个文件用于放置文件

mkdir app

登录Telegram-cli之前需要在 https://my.telegram.org/apps 获取pub密钥。输入手机号,TG收取确认码。我选择创建的application种类为app(这里填什么都行)。重要是获取 Public keys 用来登陆telegram验证。如果无法创建,从这里进去https://core.telegram.org/api/obtaining_api_id,找到API development tools点进去再建app。
在app里建立文件key.pub,复制得到的publickey保存
4、验证,注意public key的路径

bin/telegram-cli -k <public-server-key>

可以按 ctrl-c 键退出,或者使用命令 quit 或 safe_quit 退出。至此就安装好了,可以看到目前最新的信息
5、发送消息
bin/telegram-cli -W -e "msg <username/channelname> "
注意username及channelname中的空格要用_代替
别处引用加入-k
${tgpath}/bin/telegram-cli -k /app/keys.pub -W -e "msg $to $msg"
6、可以设置一个脚本方便使用,注意key路径以及cli路径。以下内容保存成msg.sh

#!/bin/bash
to=$1
msg=$2
var="-e"
tgpath=/tg_cli/tg
cd ${tgpath}
${tgpath}/bin/telegram-cli -k /app/keys.pub -W -e "msg $to $msg"

赋予权限

chmod +x msg.sh

ssh输入./msg.sh username msg就完成了一条命令的发送
7、可以配合crontab定时发送
8、P.S.
编译telegram-cli时大概报错,通过降级openssl解决
yum -y install libssl1.0-dev

评论已关闭