利用騰訊云函數scf自動簽到百度貼吧

騰訊云函數控制臺鏈接:https://console.cloud.tencent.com/scf/list

  1. 新建云函數
  2. 自定義創建,運行環境選擇php5
  3. 填寫代碼,設置bduss(在代碼22行左右)

代碼:

<?php

/*定義自定義函數*/
function xCurl($url,$cookie=null,$postdata=null,$header=array()){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    if (!is_null($postdata)) curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata);
    if (!is_null($cookie)) curl_setopt($ch, CURLOPT_COOKIE,$cookie);
    if (!empty($header)) curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 50);
    $re = curl_exec($ch);
    curl_close($ch);
    return $re;
};

function main_handler() {
    date_default_timezone_set('PRC');
    set_time_limit(0);

    $bduss='你的BDUSS';

    /*定義變量*/
    $tieba_header = array(
        'Content-Type: application/x-www-form-urlencoded',
        'Charset: UTF-8',
        'net: 3',
        'User-Agent: bdtb for Android 8.4.0.1',
        'Connection: Keep-Alive',
        'Accept-Encoding: gzip',
        'Host: c.tieba.baidu.com',
        );
    $firefox_header = array(
        'Host: tieba.baidu.com',
        'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0',
        'Accept: */*',
        'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
        'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
        'Referer: http://tieba.baidu.com/',
        'Connection: keep-alive',
    );

    $re=json_decode(xCurl('http://tieba.baidu.com/dc/common/tbs','BDUSS=' . $bduss,null,$firefox_header),true);
    if (! $re['is_login']) {
        echo '<a>登錄失敗,點此</a><a href="'.substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1).'">返回</a>';
        goto msign_end;
    };
    $tbs = $re['tbs'];



    /*程序開始*/
    $postdata = array ('BDUSS='.$bduss,'tbs=' . $tbs);
    $postdata = implode('&', $postdata).'&sign='.md5(implode('', $postdata).'tiebaclient!!!');
    $re = json_decode(gzdecode(xCurl('http://c.tieba.baidu.com/c/c/forum/msign','ca=open',$postdata,$tieba_header)),true);
    if ($re['error_code'] == '0')
        echo '<a>默認簽成功,執行第二次簽到。</a><p />';
    else
        echo '<a>默認簽到出錯,使用超級簽到。</a><p />';
    $re = json_decode(xCurl('http://tieba.baidu.com/tbmall/onekeySignin1','BDUSS='.$bduss,'ie=utf-8&tbs='.$tbs,$firefox_header),true);
    if (@$re['data']['unsignedForumAmount'] == '0'){
        echo '<a>簽到完成!已簽' . @$re['data']['signedForumAmount'] . '個吧,' . @$re['data']['unsignedForumAmount'] . '個吧未簽。</a>';
        goto msign_end;
    }
    for ($pageno = 1; 1 ; $pageno ++){
        $postdata='BDUSS='.urlencode($bduss).'&_client_version=8.1.0.4'.'&page_no=' . $pageno.'&page_size=100'.'&sign='.md5('BDUSS='.$bduss.'_client_version=8.1.0.4'.'page_no='.$pageno.'page_size=100'.'tiebaclient!!!');
        $re = json_decode(gzdecode(xCurl('http://c.tieba.baidu.com/c/f/forum/like','ca=open',$postdata,$tieba_header)),true);
        foreach ($re['forum_list']['non-gconforum'] as $list) {
            echo '<a>嘗試簽到“' . $list['name'].'吧”:';
            $re_o = json_decode(gzdecode(xCurl('http://c.tieba.baidu.com/c/c/forum/sign','ca=open','BDUSS='.urlencode($bduss).'&fid='.$list['id'].'&kw='.urlencode($list['name']).'&sign='.md5('BDUSS='.$bduss.'fid='.$list['id'].'kw='.$list['name'].'tbs='.$tbs.'tiebaclient!!!').'&tbs='.$tbs,$tieba_header)),true);
            if ($re_o['error_code'] == '0')
                echo '簽到完成,經驗值加' . $re_o['user_info']['sign_bonus_point'] . ',你是今天第' . $re_o['user_info']['user_sign_rank'] . '個簽到的。</a><br />';
            else
                echo '<a>'.$re_o['error_msg'] . '。</a><br />';
        };
        if ($re['has_more'] == '0')
            break;
    };
    $re = json_decode(xCurl('http://tieba.baidu.com/tbmall/onekeySignin1','BDUSS='.$bduss,'ie=utf-8&tbs='.$tbs,$firefox_header),true);
    echo '<a>簽到完成!已簽' . @$re['data']['signedForumAmount'] . '個吧,' . @$re['data']['unsignedForumAmount'] . '個吧未簽。</a>';
    msign_end:
    echo '<br /><a>'.date('Y年m月d日 H:i:s').'</a><br />';
};
?>
  1. 觸發管理,創建觸發器

觸發方式 定時觸發

觸發周期 自定義觸發周期

Cron表達式 0 30 8 * * * *

表示每天的08:30觸發,第一個0是秒

  1. 函數管理,函數配置,環境配置,修改執行超時時間

默認3秒,可以設置成60秒,最高900秒

關注的吧非常多可以直接設置成900秒,不過一般用不了這么長時間

但也不宜過短,時間太短的過可能簽到不完全部吧

------本頁內容已結束,喜歡請分享------
溫馨提示:由于項目或工具都有失效性,如遇到不能做的項目或不能使用的工具,可以根據關鍵詞在站點搜索相關內容,查看最近更新的或者在網頁底部給我們留言反饋。
? 版權聲明
THE END
喜歡就支持一下吧
點贊114 分享
評論 搶沙發

請登錄后發表評論

    暫無評論內容