经验分享教程Twikoo修复 Twikoo 评论系统 QQ 昵称获取
Zephyr前言
最近青桔 API 调整为需要密钥校验的调用方式,用来防止接口被攻击或盗刷。受此影响,Twikoo 评论系统里通过 QQ 号自动获取昵称的功能会失效。
这篇文章记录一种适用于安知鱼主题的前端修复方案:把 Twikoo 的前端 JS 下载到本地,替换其中获取 QQ 昵称的接口逻辑,并填入自己的 API Key。整体操作比较简单,适合想快速恢复功能的朋友参考。
获取 API Key
前往 青桔 API 注册并登录。
进入后台获取密钥。

- 打开你的博客,使用浏览器开发者工具,在
Network 面板中搜索 twikoo 关键词,找到 twikoo.all.min.js。随后切换到 Preview,复制完整的 JS 内容到编辑器中。

- 搜索
getQQNick: function(e),将这个函数替换为新的实现。
替换前:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| getQQNick: function(e) { var t = this , n = "https://api.qjqq.cn/api/qqinfo?qq=".concat(e) , r = new XMLHttpRequest; r.onreadystatechange = function() { if (4 === r.readyState && 200 === r.status) { var e = JSON.parse(r.responseText); t.metaData.nick = e.name, t.updateMeta() } } , r.open("GET", n), r.send() },
|
替换后:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| getQQNick: function(e) { var t = this; var n = "https://v1.nsuuu.com/api/qqname?key=&qq=".concat(e); var r = new XMLHttpRequest(); r.onreadystatechange = function() { if (4 === r.readyState && 200 === r.status) { var response = JSON.parse(r.responseText); if (response.code === 200) { t.metaData.nick = response.data.nick; t.updateMeta(); } else { console.error("QQ 昵称查询失败:", response.msg); t.metaData.nick = "用户" + e; t.updateMeta(); } } else if (4 === r.readyState) { console.error("QQ 昵称查询网络错误:", r.status); t.metaData.nick = "用户" + e; t.updateMeta(); } }; r.onerror = function() { console.error("QQ 昵称查询请求失败"); t.metaData.nick = "用户" + e; t.updateMeta(); }; r.open("GET", n); r.send(); },
|
替换完成后,找到这一行:
1
| var n = "https://v1.nsuuu.com/api/qqname?key=&qq=".concat(e);
|
把你的密钥填到 key= 后面,例如:
1
| var n = "https://v1.nsuuu.com/api/qqname?key=你的密钥&qq=".concat(e);
|
替换 JS
- 将修改后的 JS 文件命名为
twikoo.all.min.js,并保存到博客目录:
1
| /博客根目录/source/js/twikoo.all.min.js
|
- 修改
_config.anzhiyu.yml,将 Twikoo 配置切换为本地 JS 文件。

配置完成后,重新生成并启动博客,QQ 昵称自动获取功能就可以恢复了。