前言
在个人博客的侧边栏展示自己的QQ信息,包括头像、昵称、QQ号、等级和Q龄等,不仅可以增加博客的个性化,还能让访客更好地了解博主。本教程将详细介绍如何在Typecho博客的Handsome主题侧边栏中添加QQ信息卡片功能。
效果展示
实现后的效果是在侧边栏显示一个包含以下信息的QQ卡片:
- QQ头像
- QQ昵称
- QQ号码
- Q龄(注册年份)
- QQ等级(使用emoji表情:👑☀️🌙⭐表示不同等级)
实现步骤
1. 准备工作
首先,我们需要找到合适的API来获取QQ信息。本教程使用的是jkapi.com提供的API服务,它可以根据QQ号获取相关信息,
这个用了半个月就不行了,换成了api.dwo.cc的。
2. 修改sidebar.php文件
在Handsome主题中,侧边栏的内容是由sidebar.php
文件控制的。我们需要编辑这个文件来添加QQ信息卡片。
2.1 找到合适的位置
通常,我们会将QQ信息卡片添加到侧边栏的个人信息模块附近。在sidebar.php
文件中找到合适的位置,例如在博主信息卡片之后。
2.2 添加QQ信息卡片代码
将以下代码添加到选定的位置:
3. 添加主题设置选项
为了让用户可以通过主题设置面板控制是否显示QQ信息卡片,我们需要修改主题的设置文件。
在Handsome主题的functions.php
文件中找到themeConfig
函数,在适当位置添加以下代码:
//侧边栏显示QQ信息
$form->checkbox('sidebarBlock', array('ShowQQInfo'), _t('侧边栏显示QQ信息'), _t('开启后侧边栏将显示QQ信息卡片'));
4. 修改两个数值
1、$qq = '676567473'; // 改成你的QQ号
2、'ckey: *', // 改成你的秘钥
在小渡api(获取api的网站)中注册登录,并查看秘钥
注意事项
- 替换QQ号码:在代码中将
'你的QQ号码'
替换为你自己的QQ号码。 - API可用性:本教程使用的是jkapi.com的API,如果该API不可用,可能需要寻找替代的API服务。
- 缓存机制:代码中已实现了缓存机制,数据会缓存10天,避免频繁请求API。
- 等级图标:使用emoji表情(👑☀️🌙⭐)代替传统的QQ等级图标,避免因CDN链接不稳定导致图标无法显示。
- 错误处理:代码中包含了基本的错误处理机制,当API请求失败时会显示错误信息。
常见问题
Q: 为什么我的QQ信息不显示?
A: 可能是API服务不稳定或者网络问题,请检查浏览器控制台是否有错误信息。
Q: 如何修改缓存时间?
A: 在代码中找到10 * 24 * 60 * 60 * 1000
这一部分,修改前面的数字可以改变缓存天数。
Q: 如何添加更多QQ信息?
A: 可以根据API返回的数据,在displayQQInfo
函数中添加更多信息的显示。
结语
通过以上步骤,你已经成功在Typecho博客的Handsome主题侧边栏添加了QQ等级和信息显示功能。这个功能不仅美观实用,还具有缓存机制,避免频繁请求API导致的性能问题。
如果你有任何问题或改进建议,欢迎在评论区留言讨论。
15 条评论
博主,我今天发现获取不到qq信息了,手动请求提示,你这个没有遇到哦,我开代码请求传餐没有cookie
{"code":500,"message":"获取信息失败,请使用自己的cookie进行获取,参数加&Cookie=您的cookie即可"}root@instance-nsstydow:/typecho_www/www/html/typecho/usr/themes/handsome/component#
手动增加cookie是可以的了,博主你是动态获取cookie的吗
要cookie干什么
就是我今天发现qq信息获取不到了,然后我排查模拟请求api返回需要添加cookie
你直接去那个api提供的地方测
这个报错在哪里显示的
无法获取到信息后我在服务器curl的,奇怪了现在curl不报这个错了
qq登陆的cookie
|´・ω・)ノ
学习一下博主
侧边栏的这个睡眠信息是真高级啊 直接调的厂商 还是把数据传到第三方
这取决于你用的智能手表,像佳明那种,官方公开api,那太爽了
我用的是oppo的手表,数据在它的健康app里面。但是oppo官方不给api也不让把数据同步到google fit,甚至不能导出。数据是封闭的死死的,所以就是做一个前端小页面用来上传数据,数据发送到插件里,存数据库。
滴!学生卡!打卡时间:16:16:06,请上车的乘客系好安全带~
滴!学生卡!打卡时间:16:02:35,请上车的乘客系好安全带~