在某火看到的云函数很火,签到无非是调用接口,利用云函数定时执行,下面是简单的使用教程。

获取 Cookie

利用抓包工具,安卓 HttpCanary , IOS thor, 电脑 Fiddler,获取自己的cookie

抓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点执行。

触发方式

效果

运行日志