本文僅供技術研究與教學參考。模擬登入第三方服務違反多數平台服務條款,且涉及帳號密碼明文傳輸,極不安全。正式專案請務必使用官方提供的 OAuth 2.0 / OpenID Connect 介面(如 QQ 互聯)。
透過 cURL 模擬瀏覽器向 QQ 移動版登入頁(pt.3g.qq.com)發送 POST 請求,攜帶帳號密碼與必要表單欄位,獲取 Cookie 以維持登入狀態。
<?php
$qqno = '你的QQ號碼';
$qqpw = 'QQ密碼';
$cookie = dirname(__FILE__) . '/cookie.txt';
$post = array(
'login_url' => 'https://pt.3g.qq.com/s?sid=ATAll43N7ZULRQ5V8zdfojol&aid=nLogin',
'q_from' => '',
'loginTitle' => 'login',
'bid' => '0',
'qq' => $qqno,
'pwd' => $qqpw,
'loginType' => '1',
'loginsubmit' => 'login',
);
$curl = curl_init('https://pt.3g.qq.com/handleLogin?aid=nLoginHandle&sid=ATAll43N7ZULRQ5V8zdfojol');
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); // 儲存 Cookie
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
$result = curl_exec($curl);
curl_close($curl);
// $result 即登入回應內容,可進一步解析判斷是否成功
// 後續請求可使用 CURLOPT_COOKIEFILE 讀取 $cookie 維持會話
?>
CURLOPT_COOKIEJAR:登入成功後將 Cookie 寫入檔案。http_build_query():正確編碼 POST 欄位,避免特殊字元問題。sid、aid 可能隨時失效,實際部署需動態獲取。參考官方文檔:QQ 互聯開發文檔