加载中
🤖
AI审核中

输入QQ号自动获取昵称

  Java   8分钟   1236浏览   1评论
AI
AI智能摘要
正在分析文章内容

功能概述

为了提升用户体验,减少用户填写评论表单的操作步骤,我们在博客系统的评论功能中实现了输入QQ号自动获取昵称的功能。当用户在QQ号输入框中输入QQ号码并失去焦点时,系统会自动调用第三方API获取该QQ号的昵称,并自动填入昵称输入框。

实现效果

  • 主评论表单:输入QQ号后自动填充昵称
  • 回复框:输入QQ号后自动填充昵称
  • 头像同步:同时自动获取QQ头像并显示

技术方案

1. 接口选择

经过多个接口的测试对比,最终选择了稳定可用的 uapis.cn 接口:

https://uapis.cn/api/v1/social/qq/userinfo?qq={QQ号码}

返回格式示例

{
  "qq": "1565453341",
  "nickname": "召田最帅boy",
  "long_nick": "知不足而奋进,望远山而前行。",
  "avatar_url": "http://q.qlogo.cn/g?b=qq&nk=1565453341&s=640",
  "age": 25,
  "sex": "male",
  "qid": "wzryxxsyx6",
  "qq_level": 88,
  "location": "中国 湖南 衡阳",
  "email": "xf-zou@qq.com"
}

2. 核心代码实现

2.1 获取QQ昵称函数

// 获取QQ昵称并填入指定输入框
function fetchQQNickname(qq, targetSelector) {
    if (!qq || !/^\d{5,11}$/.test(qq)) {
        return;
    }
    $.ajax({
        url: `https://uapis.cn/api/v1/social/qq/userinfo?qq=${qq}`,
        type: 'GET',
        dataType: 'json',
        success: function(res) {
            if (res && res.nickname) {
                $(targetSelector).val(res.nickname);
            }
        },
        error: function() {
            console.log('获取QQ昵称失败');
        }
    });
}

代码说明

  • 使用正则表达式验证QQ号格式(5-11位数字)
  • 通过jQuery的$.ajax发送异步请求
  • 成功获取昵称后自动填入目标输入框
  • 失败时仅在控制台输出日志,不影响用户操作

2.2 主评论表单集成

$('#QQ').blur(function () {
    var QQ = $("#QQ").val().trim();
    setAvatarAndEmail(QQ);
    if (QQ) {
        fetchQQNickname(QQ, '#nickname');
    }
});

触发时机:用户在QQ输入框(#QQ)失去焦点(blur事件)时触发

2.3 回复框集成

// QQ号自动获取头像和昵称
replyModal.on('blur', '.reply-qq', function () {
    const QQ = $(this).val().trim();
    if (QQ) {
        replyModal.find('.ui.mini.circular.image').attr(
            'src',
            `https://q1.qlogo.cn/g?b=qq&nk=${QQ}&s=100`
        ).css('transition', 'transform 0.3s ease');
        // 自动获取昵称
        fetchQQNickname(QQ, replyModal.find('.reply-nickname'));
    }
});

触发时机:用户在回复框的QQ输入框(.reply-qq)失去焦点时触发

3. 应用页面

该功能已集成到以下两个页面:

页面 文件路径
友情链接/留言板 src/main/resources/templates/themes/pinghsu/links.html
文章详情页 src/main/resources/templates/themes/pinghsu/post.html

接口测试历程

在开发过程中,我们测试了多个QQ信息查询接口,遇到了各种稳定性问题:

接口地址 状态 备注
https://api.qjqq.cn/api/qqinfo ❌ 504 Gateway Timeout 服务不稳定
https://api.oioweb.cn/api/qq/info ❌ 404 Not Found 接口已下线
https://api.lixingyong.com/api/qq ⚠️ 部分QQ号500错误 部分号码查询失败
https://apis.kit9.cn/api/qq_member/api.php ⚠️ 可用但信息有限 仅返回基础信息
https://uapis.cn/api/v1/social/qq/userinfo ✅ 稳定可用 信息丰富,最终选用

安全性考虑

  1. 前端验证:使用正则表达式验证QQ号格式,避免无效请求
  2. 异步请求:使用AJAX异步获取数据,不阻塞页面交互
  3. 错误处理:接口调用失败时不影响用户正常填写,仅控制台输出日志
  4. 跨域支持:选用的API接口支持CORS跨域请求

优化建议

  1. 缓存机制:可以考虑将获取到的QQ信息缓存到LocalStorage,避免重复请求
  2. 加载状态:添加加载动画提示用户正在获取信息
  3. 备用接口:配置多个备用接口,当主接口不可用时自动切换
  4. 后端代理:考虑通过后端服务器转发请求,避免前端直接暴露第三方接口

总结

通过集成QQ号自动获取昵称功能,我们有效简化了用户的评论操作流程,提升了用户体验。该功能实现简单、效果显著,是博客系统用户体验优化的一个典型案例。

如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧☕
微信
支付宝
  1 条评论
不是博主~   湖南省长沙市

。。。。

AI助手
召田最帅boy的小助手
🤖
我是召田最帅boy的小助手
我已经阅读了这篇文章,可以帮您:
理解文章内容 · 解答细节问题 · 分析核心观点