利用腾讯云函数实现联通签到
在某火看到的云函数很火,签到无非是调用接口,利用云函数定时执行,下面是简单的使用教程。
获取 Cookie
利用抓包工具,安卓 HttpCanary
, IOS thor
, 电脑 Fiddler
,获取自己的cookie
新建云函数
在 腾讯云函数控制台 添加云函数,设置运行函数为php
函数代码
<?php
function main_handler($event,$time){
//脚本设置
$phone = ''; //填写手机号
$cookie = ''; //填写cookies
$sckey = ''; //填写sever酱sckey
$data = 'className=signinIndex';
$date = date('YmdHis');
$headers = array(
"Referer: https://act.10010.com/SigninApp/signin/querySigninActivity.htm?desmobile=".$phone."&version=android@7.0000",
"Accept: text/html, application/xhtml+xml, image/jxr, */*",
"User-Agent: Mozilla/5.0 (Linux; Android 9; MI MAX 3 Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36; unicom{version:android@7.0000,desmobile:15690507717};devicetype{deviceBrand:Xiaomi,deviceModel:MI MAX 3}"
);
$random = mt_rand(100000,999999);
$renzheng = post('https://act.10010.com/SigninApp/signin/rewardReminder.do?vesion=0.018936113139'.$random,' ',$cookie,$headers);
//金币查询
$count1 = post('https://act.10010.com/SigninApp/signin/goldTotal.do?vesion=0.019762071301'.$random,' ',$cookie,$headers);
//签到
$output = post('https://act.10010.com/SigninApp/signin/daySign.do',$data,$cookie,$headers);
$qd1 = json_decode($output,true);
if($qd1['msgCode'] == '0000'){
$qd1_result = '签到成功,获得了'.$qd1['continuCount'].'金币';
}elseif($qd1['msgCode'] == '0008'){
$qd1_result = '签到失败,今天已签到!';
}else{
$qd1_result = '签到失败,cookie过期。';
file_get_contents('https://sc.ftqq.com/'.$sckey.'.send?text='.urlencode('联通营业厅签到cookie过期啦!'));
return 'error';
}
//微博签到
$wb = post('https://act.10010.com/signinAppH/commonTask?vesion=0.01839278081'.$random,'transId='.$data.'0.19402970817'.$random.'&userNumber='.$phone.'&taskCode=TA590934984&finishTime=20191213174953&taskType=DAILY_TASK',$cookie,$headers);
$qd2 = json_decode($wb,true);
if($qd2['respCode'] == '0000'){
$qd2_result = '签到成功';
}elseif($qd2['respCode'] == '0003'){
$qd2_result = '签到失败,今天已签到!';
}else{
$qd2_result = '签到失败,cookie过期。';
}
//金币查询
$count2 = post('https://act.10010.com/SigninApp/signin/goldTotal.do?vesion=0.019762071301'.$random,' ',$cookie,$headers);
echo '脚本执行完成!营业厅签到结果:'.$qd1_result.'。微博双签结果:'.$qd2_result.'。[签到前金币:'.$count1.', 签到后金币:'.$count2;
}
function post($url, $data, $cookie,$headers) {
//初使化init方法
$ch = curl_init();
//指定URL
curl_setopt($ch, CURLOPT_URL, $url);
//设定请求后返回结果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//声明使用POST方式来进行发送
curl_setopt($ch, CURLOPT_POST, 1);
//发送什么数据呢
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
//忽略证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
//设置超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
//发送请求
$output = curl_exec($ch);
//关闭curl
curl_close($ch);
//返回数据
return $output;
}
?>
当然也可以填写自己的 sever酱sckey 实现微信推送。
触发方式
添加定时触发方式,根据自己需求填写cron表达式,我这里每天0点执行。