我不能帮你做“强制加好友”的代码或任何绕过对方同意、自动化操控账号的做法——这会侵犯他人隐私、违反平台规则,也可能触法。🙏
不过,如果你的目标是合规地引导用户加你 QQ(用户自愿点击/确认),可以用官方支持的方式:页面按钮、URI Scheme、二维码、群邀请等。下面给你一套可直接用的 HTML 模板(纯前端),点击后在已安装 QQ 的设备上唤起“对话/加好友/加群”界面,用户依然需要自己确认。
✅ 合规替代方案(可复制即用)
把 YOUR_QQ_UIN
换成你的 QQ 号,YOUR_GROUP_ID
换成你的 QQ 群号。
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>联系我(QQ 合规添加)</title>
<style>
:root{--bg:#0f172a;--fg:#e2e8f0;--card:#111827;--accent:#38bdf8;}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
background:linear-gradient(120deg,#0b1220,#0f172a);color:var(--fg);
display:flex;min-height:100vh;align-items:center;justify-content:center;}
.wrap{width:min(720px,92vw);padding:28px;background:rgba(17,24,39,.7);
border:1px solid rgba(148,163,184,.2);border-radius:18px;backdrop-filter:blur(6px);}
h1{margin:0 0 14px;font-size:22px}
p{margin:0 0 18px;color:#cbd5e1}
.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
@media (max-width:680px){.grid{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid rgba(148,163,184,.18);
border-radius:14px;padding:18px}
.btns{display:flex;flex-wrap:wrap;gap:10px}
a.btn{padding:10px 14px;border-radius:12px;text-decoration:none;border:1px solid rgba(56,189,248,.4);
background:rgba(56,189,248,.08);color:var(--fg);transition:.2s}
a.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(56,189,248,.25)}
#qrcode{display:grid;place-items:center;height:210px;border:1px dashed rgba(148,163,184,.35);
border-radius:12px;background:rgba(2,6,23,.6)}
small{color:#94a3b8}
code{background:#0b1220;padding:2px 6px;border-radius:6px;border:1px solid rgba(148,163,184,.2)}
</style>
</head>
<body>
<div class="wrap">
<h1>联系我(QQ)</h1>
<p>点击下方按钮或扫描二维码,在 QQ 中发起对话 / 申请添加(用户需自行确认)。</p>
<div class="grid">
<div class="card">
<h3>一键跳转</h3>
<div class="btns">
<!-- 唤起 QQ 对话(WPA) -->
<a class="btn" href="mqqwpa://im/chat?chat_type=wpa&uin=YOUR_QQ_UIN&version=1&src_type=web">与我对话</a>
<!-- 备用:tencent 协议(部分环境可用) -->
<a class="btn" href="tencent://message/?Menu=yes&uin=YOUR_QQ_UIN">备用对话</a>
<!-- 加群邀请(需替换为你的群号) -->
<a class="btn" href="https://qm.qq.com/cgi-bin/qm/qr?k=YOUR_GROUP_ID">加入QQ群</a>
</div>
<p style="margin-top:12px;"><small>提示:移动端安装了 QQ 的情况下,点击将唤起 QQ;桌面端可能需要浏览器放行或使用备用链接。</small></p>
</div>
<div class="card">
<h3>扫码添加</h3>
<div id="qrcode">正在生成二维码…</div>
<p style="margin-top:10px;"><small>长按/扫一扫识别。二维码仅指向 QQ 官方入口,不会自动添加。</small></p>
</div>
</div>
<p style="margin-top:16px"><small>合规建议:明确告知用户操作将打开 QQ;尊重用户意愿,不要诱导或强制。</small></p>
</div>
<!-- 轻量二维码生成(不依赖外网) -->
<script>
// 极简二维码:用 Canvas 画一个字样占位;如需真二维码,可引入本地 qrcode.min.js
// 下面提供原生生成:当无法外网时,使用 data URL 的方式动态插入图片(推荐换成你自己的 QQ 名片二维码 PNG)
(function(){
const target = "mqqwpa://im/chat?chat_type=wpa&uin=YOUR_QQ_UIN&version=1&src_type=web";
// 如果你有现成名片二维码图片地址,替换下面的 qImg 即可(本地/同源)
const qImg = ""; // 例如 "/assets/qq_card_qr.png"
const box = document.getElementById('qrcode');
if(qImg){
const img = new Image(); img.alt="QQ 二维码"; img.style.maxWidth="190px";
img.src = qImg; box.innerHTML=""; box.appendChild(img);
return;
}
// 简易占位:生成带链接文字的 Canvas(建议上线时替换为真二维码)
const c = document.createElement('canvas'); c.width = 190; c.height = 190;
const ctx = c.getContext('2d');
ctx.fillStyle = "#0b1220"; ctx.fillRect(0,0,c.width,c.height);
ctx.strokeStyle = "rgba(148,163,184,.6)"; ctx.setLineDash([6,4]); ctx.strokeRect(6,6,178,178);
ctx.setLineDash([]);
ctx.fillStyle = "#e2e8f0"; ctx.font = "12px system-ui, -apple-system, Segoe UI";
ctx.textAlign = "center";
ctx.fillText("请替换为你的 QQ", 95, 84);
ctx.fillText("名片二维码图片", 95, 102);
const a = document.createElement('a'); a.href = target; a.textContent = "或点此直接打开 QQ 对话";
a.className = "btn"; a.style.marginTop = "10px"; a.style.display="inline-block";
box.innerHTML = ""; box.appendChild(c); box.appendChild(a);
})();
</script>
</body>
</html>
📌 小贴士(避免被判为骚扰/风险)
- 明确告知用户会打开 QQ,并由用户自行确认添加。
- 不要自动跳转或在页面加载时强制打开 URI Scheme。
- 节制频率:避免频繁弹窗、反复尝试唤起,容易被浏览器或安全软件拦截。
- 提供备选:加群、客服 QQ、邮箱、表单等多种联系方式。
发表回复