阿里云盘自动签到php脚本

323 阅读1分钟

获取 refresh_token

  1. 网页登录阿里云盘官网 www.aliyundrive.com/drive
  2. F12进入开发者工具,找到Local storage中的www.aliyundrive.com这个域名,点到这个域名会看到有一个 token 选项,再点 token ,就找到 refresh_token 了 iShot_2023-07-13_14.47.15.png

修改代码中$refreshTokenArray值为refresh_token

<?php
$updateAccessTokenURL = "https://auth.aliyundrive.com/v2/account/token";  
$signURL = "https://member.aliyundrive.com/v1/activity/sign_in_list";  
$refreshTokenArray = [  
"",  
];  
  
foreach ($refreshTokenArray as $index => $refreshToken) {  
    try {  
        $queryBody = [  
            'grant_type' => 'refresh_token',  
            'refresh_token' => $refreshToken  
        ];  

        $reqtoken = doCurlPostRequest($updateAccessTokenURL, $queryBody);  
        // var_dump($reqtoken);  
        $access_token = $reqtoken->access_token;  

        $reqsign = doCurlPostRequest($signURL, $queryBody, ['Authorization: Bearer ' . $access_token,]);  
        // var_dump($reqsign);  
        if ($reqsign->success) {  
            printLog('token_' . $index . ' 签到成功!');  
        }  
    } catch (\Exception $exception) {  
        printLog('运行错误!' . $exception->getMessage());  
    }  
}  
  
  
function printLog($message)  
{  
    echo sprintf('[%s] %s', date('Y-m-d H:i:s'), $message) . PHP_EOL;  
}  
  
function doCurlPostRequest($url = '', array $data = [], array $header = [])  
{  
    $data_string = json_encode($data, JSON_UNESCAPED_UNICODE);  
    $curl_con = curl_init();  
    curl_setopt($curl_con, CURLOPT_URL, $url);  
    curl_setopt($curl_con, CURLOPT_HEADER, false);  
    curl_setopt($curl_con, CURLOPT_POST, true);  
    curl_setopt($curl_con, CURLOPT_RETURNTRANSFER, TRUE);  
    curl_setopt($curl_con, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($curl_con, CURLOPT_HTTPHEADER,  
        array_merge($header, [  
            'Content-Type: application/json',  
            'Content-Length: ' . strlen($data_string)  
        ])  
    );  
    curl_setopt($curl_con, CURLOPT_POSTFIELDS, $data_string);  
    $res = curl_exec($curl_con);  
    $status = curl_getinfo($curl_con);  
    curl_close($curl_con);  

    if (isset($status['http_code']) && $status['http_code'] == 200) {  
        return json_decode($res);  
    }  

    return false;  
}

定时执行

随便搞