由于不属于教程,不需要人人都会,所以这篇文章不会详细写的啦,更不会去跑一遍验证代码正确性啦(抬头挺胸)。
写在前头:开放自动签到服务前,请先向相关人员整得许可。也请勿轻易在不可信的平台使用服务。在代码公开后,目录节目大公开可能会造成不安全性,再者在写代码的过程中我也完全没有考虑安全问题,因为我靠防火墙保障安全,所以使用时需要适当魔改。
原理是利用crontab定时curl,欢迎诸君改造代码。如果只是自己使用的话,加个定时任务就行,没必要这么搞起来。
前端:
↑为html代码,其中需要替换的后端地址:
https://demo.mmxblog.com/api/hook
https://demo.mmxblog.com/client/traffic
其中第一行指向后端中的hook/index.php
,第二行的地址对应sockboom的流量查询api的反代(参考sockboom api文档),用以解决js跨域问题。
后端:
先创建文件,然后创建专用用户(linux):
cd / mkdir sockboom cd sockboom touch commands chown sockboom commands
adduser sockboom
该用户的密码可以随便设成乱码,不需要用到。
然后需要使用宝塔面板的webhook添加脚本或者自行解除函数禁言用php写接口。
宝塔webhook内容:
array=(${1//-/ })
echo "${array[2]} ${array[1]} * * * curl https://demo.mmxblog.com/api/tgbot/sign_data/sign.php?token=${array[0]}" >> /sockboom/commands
crontab -u sockboom /sockboom/commands
添加后,将webhook地址替换到hook/index.php
和tgbot/index.php
中(就是替换那个替换掉我,带密钥
)
文件目录树:
- hook
- index.php
- tgbot
- sign_data
- chat_id
- temp
- add_sign.php
- data_callback.php
- index.php
- sign_data
telegrambot需要在bot father那开启,command list为
autocheckin - 配置sockboom自动签到(仅VIP)
autocdata-自动签到数据查询
得到的bot token需要填入tgbot/index.php
第二行$token
的赋值中
最后设置一个定时任务清除tgbot/temp
中的所有文件和专用用户的crontab(shell)
echo "" > /sockboom/commands
crontab -u sockboom -r
cd tgbot/
rm -f temp/*