• 欢迎访问好鸭博客网站,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入 QQ群
  • Git主题现已支持滚动公告栏功能,兼容其他浏览器,看到的就是咯,在后台最新消息那里用li标签添加即可。

Linux下使用Telegram-cli(TG电报)实现定时自动化给机器人、频道发消息实现签到的方法,附多账号配置方案

Linux haoduck 3年前 (2020-12-17) 1616次浏览 8个评论

项目地址:https://github.com/vysheng/tg
可以自己尝试编译,不过我比较建议用Docker,这样的话不会有那么多编译环境的问题

我这里演示从Docker运行telegram-cli容器开始

安装Docker的话可见:https://haoduck.com/239.html

Dokcer配置Telegram-cli

Docker运行Telegram-cli

docker pull peng4740/telegram-cli
docker run -itd -v ~/telegram-cli/:/home/telegramd/.telegram-cli/ --name=tg --restart=always peng4740/telegram-cli

单账号配置

docker exec -it tg telegram-cli

给文件夹权限,让容器里的非ROOT用户能读取配置

chmod -R 777 ~/telegram-cli/

然后按提示输入手机号(带区号,比如+8613800138000)

接验证码(验证码是在Telegram里收的,不是短信)

然后就登录成功了

键入Ctrl + P Ctrl +Q使容器后台运行

多账号配置

写下面配置内容到文件~/telegram-cli/config
这里的示例是3个账号,如果你有更多,就依此类推

default_profile = "profile_1";

profile_1 = {
config_directory = ".telegram-cli/profile_1";
msg_num = true;
};

profile_2 = {
config_directory = ".telegram-cli/profile_2";
msg_num = true;
};

profile_3 = {
config_directory = ".telegram-cli/profile_3";
msg_num = true;
};

写完配置文件需要创建这几个用户的文件夹
也就是这些文件夹:.telegram-cli/profile_1.telegram-cli/profile_2.telegram-cli/profile_3
但要注意,这些文件夹对应宿主机的是:~/telegram-cli/profile_1~/telegram-cli/profile_2~/telegram-cli/profile_3
创建文件夹的命令应该是mkdir ~/telegram-cli/profile_1,账号不多的话手动敲几行创建一下

很多的话我提供一个脚本,不过应该没有人这么多账号吧
修改下面的dirs=你的用户个数

dirs=10
for i in `seq 1 $dirs`; do mkdir ~/telegram-cli/profile_$i; done

给文件夹权限,让容器的非ROOT用户能读取配置

chmod -R 777 ~/telegram-cli/

进容器登录账号

docker exec -it tg telegram-cli -p profile_1
#输入手机号,TG APP里接验证码登录
#登录完成后直接CTRL+C或者CTRL+P+CTRL+Q退出
#然后依次登录别的账号,即把上面命令最后的profile_1改为profile_2、profile_3,以此类推

使用telegram-cli发消息

docker exec tg telegram-cli -p profile_1 -We "msg <对方名称> <消息>"

注意是名称,而不是用户名或者频道的ID,也就是聊天时显示的名称。当名称有空格时,用下划线代替,嗷嗷翻了issues好久才得到解决方法。

比如

docker exec tg telegram-cli -p profile_1 -We "msg 好鸭机器人 好鸭博客666"

定时发送消息

写一个单账号的发消息比较简便的脚本

cat << EOF > /usr/bin/tg_msg.sh
if [[ ! -z $3 ]];then
/usr/bin/docker exec tg telegram-cli -p $1 -We "msg $2 $3"
else
/usr/bin/docker exec tg telegram-cli -We "msg $1 $2"
fi
EOF
chmod +x /usr/bin/tg_msg.sh

单账号

将命令/usr/bin/tg_msg.sh 好鸭机器人 好鸭博客666" 加入到Crontab
好鸭机器人是对方的名称
好鸭博客666是要发送的消息
记得改成你需要发送的用户和你要发的消息哦

crontab -e

到最后新增一行写入

30 0 * * * /usr/bin/tg_msg.sh 好鸭机器人 好鸭博客666
chmod +x /usr/bin/tg_msg.sh

如果不需要保留crontab日志

30 0 * * * /usr/bin/tg_msg.sh 好鸭机器人 好鸭博客666  > /dev/null 2>&1

多账号

将命令/usr/bin/tg_msg.sh profile_1 好鸭机器人 好鸭博客666" 加入到Crontab
profile_1是Telegram-cli的用户1,还有profile_2,profile_3(前面配置写的)就是用户2,用户3
好鸭机器人是对方的名称
好鸭博客666是要发送的消息
记得改成你需要发送的用户和你要发的消息哦

crontab -e

在最后新增一行写入下面的内容

30 0 * * * /usr/bin/tg_msg.sh profile_1 好鸭机器人 好鸭博客666

如果不需要保留crontab日志

30 0 * * * /usr/bin/tg_msg.sh profile_1 好鸭机器人 好鸭博客666 > /dev/null 2>&1

关于crontab表达式

30 0 * * *表示每天的00:30
30 0,12 * * *表示每天的00:3012:30

按需选择,也可以自己写

选择每天的00:3012:30可以减低签到没成功的可能

本文就到这里,有什么问题欢迎留言讨论。


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux下使用Telegram-cli(TG电报)实现定时自动化给机器人、频道发消息实现签到的方法,附多账号配置方案
喜欢 (10)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(8)个小伙伴在吐槽
  1. standard_init_linux.go:211: exec user process caused "exec format error",无法运行啊大佬,我这个是n1 docker容器
    b911ss2021-01-26 12:56 Reply
  2. 容器启动后立刻停止运行,logs显示没有权限 请问怎么解决呢?
    1232021-02-10 16:44 Reply
  3. 感谢,成功了,但是里面有些错误,启动容器命令会报错,应改用为docker strart 容器id(容器id通关该命令查找docker ps -a),如果启动成功,进入是出现问题通关ctr+c退出重进。发送脚本命令中的-it应该删除,别人会报错。再次感谢博主提供的方法。
    nickname2021-03-10 14:20 Reply
  4. 可以一次发送多条消息吗?
    yhh2021-03-16 13:52 Reply
  5. 日志文件越来越大,有无办法只让该docker不收信息,但是不影响发送?(目前的办法在容器外的sh里写了docker start tg,中间代码,末尾写docker stop tg)
    rock2021-04-30 22:58 Reply
  6. 多账户配置文件夹创建和关联哪里没有搞明白,没成功
    szcare2021-10-21 12:06 Reply
  7. 感谢大佬的分享,按照上面操作都成功了,但是多账号登录那里报错了,*** 1638360722.274333 Incorrect phone number *** 1638360722.275867 Notification API_64BIT_LOGIN_APP_OUTDATED_122: You are using an outdated app that is no longer supported. To access your messages, please update your app to the latest version.我自己tg app是最新版本,查了半天也没找到答案,大佬能看看吗
    yNo2021-12-01 20:16 Reply