通过php模拟登录和签到请求来达到自动签到的目的。需要手动设定白给当前域名、账号以及密码。肝一下的话甚至可以直接脚本自动化检查域名是否更换,但我并不使用白给所以我懒得。
以下是自动签到脚本(php)的内容。将其放在服务器或者在本地部署php环境即可。要转成js(直接适用于tasker)也行但我懒得。修改好放好后直接访问即签到,在服务器设置定时访问即可实现自动签到。
访问返回值为签到的结果信息(“今天已经签到了”或者“获得流量xxx”的字符串)。流量值会储存在data文件中(自动创建),单位为MB。
修改脚本最前面的三个变量即可完成设定。
<?php
$base='https://my.wdnmd.rocks/';
$account='xxxx@xx.com';//账号
$password='xxx';//密码
function request_post($remote_server, $post_string,$cookie,$header) {
$opt = curl_init();
curl_setopt($opt, CURLOPT_URL,$remote_server);
curl_setopt($opt, CURLOPT_HEADER,$header);
curl_setopt($opt, CURLOPT_POSTFIELDS,$post_string);
curl_setopt($opt, CURLOPT_RETURNTRANSFER, true);
curl_setopt($opt, CURLOPT_COOKIE, $cookie);
curl_setopt($opt, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36");
$data = curl_exec($opt);
curl_close($opt);
return $data;
}
$result=request_post($base.'auth/login','email='.urlencode($account).'&passwd='.urlencode($password).'&code=',false,true);
preg_match_all('/Set-Cookie:\s(.*?)(;|\s)/',$result,$c);
$c=$c[1];$temp=$c[0];
for($i=1;$i<count($c);$i++)$temp=$temp.'; '.$c[$i];
$result=request_post($base.'user/checkin','',$temp,false);
echo json_decode($result)->msg;
preg_match('/\s([0-9]*)\s*MB/',json_decode($result)->msg,$f);
$f=$f[1];
if(is_null($f))$f=0;
if(!file_exists('data'))file_put_contents('data',$f);
else file_put_contents('data',(file_get_contents('data')*1)+$f*1);
?>
PS:本来想用创建TGbot自动向签到BOT发送签到信息的方式实现自动签到,用魔法打败魔法,结果发现BOT直接不能小窗BOT。hhhhhhh
“Forbidden: bot can’t send messages to bots”