支持
1. QQ空间短链接生成
1)输入你的QQ号,生成专属链接
2)然后通过坦白说把此链接发给ta,可以夹带一些诱惑语言,去引导ta点开此链接
3)然后在空间访问列表里等待ta的点击(ta如果点了就会出现在你的空间访问列表里)
4)现在还有一种类似访问空间的方法:手Q-搜索 日迹-随便发一个小视屏-右上角分享-复制链接 。可以发美女图片,说这个是不是你啊,等等诱惑性语言。
2. 支持长链接转换
1)使用电脑版空间地址 https://user.qzone.qq.com/你的QQ号 转短链接。
2)使用手机版空间地址 https://h5.qzone.qq.com/mqzone/profile?hostuin=你的QQ号 转短链接
2)Tips:嫌生成的短链接太长了可以去掉前面的http://
3. 支持提交真实QQ号(为了确保提交的数据真实,本站不得已采用QQ登录方式)
4. 支持json数据解密(具体请看坦白说数据获取视频教程)
5.支持坦白说好友条件查询
原理很简单:获取QQ好友列表,再依次获取每个好友信息进行对比判断。
1)输入条件:性别(必选)城市,年龄,星座,认识时间(4个信息至少填一个)即可筛选出符合条件的好友。
2)查询的结果点击头像进入QQ名片页面,点击QQ号可直接聊天,点击星座查看好友天数。
3)查询时间因QQ好友数量、查询条件而定。
工具地址:http://tb.eleuu.com
条件查询网站开发原理(感兴趣的可以学习)
p_skey、skey、uin、g_tk 获取方法:
电脑端获取:http://p875fw64u.bkt.clouddn.com/getkey.gif
安卓手机端获取:http://p875fw64u.bkt.clouddn.com/mgetskey.mp4
关于BKN的计算,这里附上我修改过的PHP函数代码
function GetBkn($skey){
for ($i = 0,$hash = 5381;$i < strlen($skey);++$i){
$hash += ($hash << 5) + ord(mb_substr($skey, $i, 1, 'utf-8'));
}
return (string)($hash & 2147483647);
}
以下演示中我提前抓到相关参数
g_tk=853008089;
skey=@6m3kRCUVM;uin=o0775262592;p_skey=Bw5KIPhbkm6mw2MoL2nU7PHcsE6z86L0SIZoYuUoWMY_;
bkn由函数GetBkn($skey)计算得到bkn=939377395;
以下以查询QQ号为2975821869做演示:
1.获取好友列表
请求地址:(GET)
https://h5.qzone.qq.com/proxy/domain/r.qzone.qq.com/cgi-bin/tfriend/friend_show_qqfriends.cgi?uin=775262592&g_tk=853008089
请求头header:
Cookie:skey=@6m3kRCUVM;uin=o0775262592;p_skey=Bw5KIPhbkm6mw2MoL2nU7PHcsE6z86L0SIZoYuUoWMY_;
返回信息:
{
"items": [//所有的QQ好友基本信息
{
"uin": 460551,//QQ号
"groupid": 0,//好友分组序号为0,例如本次数据对应的分组名字为陌生人
"name": "K网的小仙女客服",//QQ好友网名
"remark": "",//QQ好友备注
"img": "http://qlogo4.store.qq.com/qzone/460551/460551/30",//QQ好友头像地址
"yellow": -1,//是不是黄钻
"online": 0,//是否在线
"v6": 1//这个我没仔细研究
},
。。。中间我就省略了
{
"uin": 874826,
"groupid": 0,
"name": "快眼小七",
"remark": "快眼小七",
"img": "http://qlogo3.store.qq.com/qzone/874826/874826/30",
"yellow": -1,
"online": 0,
"v6": 1
}
],
"gpnames": [//好友分组列表序号以及对应的名字
{
"gpid": 0,//分组序号
"gpname": "陌生人"//分组名称
},
。。。中间我就省略了
{
"gpid": 9,
"gpname": "社会人"
}
]
}
2.获取好友名片
请求地址:(POST)
http://ti.qq.com/cgi-bin/more_profile_card/more_profile_card
请求头header:
Cookie:skey=@6m3kRCUVM;uin=o0775262592;p_skey=Bw5KIPhbkm6mw2MoL2nU7PHcsE6z86L0SIZoYuUoWMY_;
POST参数:
_q=2975821869&bkn=939377395&src=mobile
返回信息:
{
"ec": 0,
"profile": [{
"age": 19,//年龄
"birthday": {
"day": 13,
"month": 2,
"year": 1999
},
"college": "农民工小学",
"company": "",
"constellation": 1,//星座序号,对应水瓶座
"email": "",
"gender": 2,//性别:1 男 2 女 255 隐藏
"hometown_area": "荔湾区",
"hometown_city": "广州",//所在城市
"hometown_country": "中国",
"hometown_state": "广东",
"location_area": "荔湾区",
"location_city": "广州",
"location_country": "中国",
"location_state": "广东",
"nick": "你若成风",
"occupation": 13,
"personal": ""
}
]
}
星座序号对应关系:
$constellationsarray=array("未设置","水瓶座","双鱼座","白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","射手座","摩羯座");
3.获取加好友天数
请求地址:(GET)
https://h5.qzone.qq.com/proxy/domain/r.qzone.qq.com/cgi-bin/friendship/cgi_friendship?g_tk=853008089&activeuin=2975821869&passiveuin=775262592&format=json&situation=1
请求头header:
Cookie:skey=@6m3kRCUVM;uin=o0775262592;p_skey=Bw5KIPhbkm6mw2MoL2nU7PHcsE6z86L0SIZoYuUoWMY_;
返回信息:
{
"code": 0,
"subcode": 0,
"message": "",
"default": 0,
"data": {
"addFriendTime": 1464075341,//加好友时间,这里是Unix时间戳,转换得到2016-05-24 15:35:41
"common": {
"app": [],
"astro": "",
"birthyear": 1990,
"bloodType": "",
"eduExp": [],
"friend": [
{},
{},
{},
{},
{},
{}
],
"group": [
{
"name": "电子乌托邦联盟"
}
],
"homeAddr": [],
"liveinAddr": [],
"workExp": []
},
"constellation": {
"date": "",
"index": 0,
"parCauTitle": "",
"partnerCaution": 0,
"title": "",
"weekDay": 0
},
"friendName": "",
"friendUin": 775262592,
"interactive": {
"AddComment": 0,
"AddGift": 0,
"AddLike": 0,
"AddMention": 0,
"AddReply": 0,
"AddRetweet": 0,
"DeleteComment": 0,
"DeleteFootPrint": 0,
"DeleteLike": 0,
"DeleteReply": 0,
"VisitUGC": 0,
"visitCount": 0,
"visitTime": []
},
"intimacyScore": 56,
"isFriend": 1,
"nick": {
"775262592": "葑茚[em]e328139[/em]記憶",
"2975821869": "你若成风"
},
"passiveGender": 1,
"specialCare": false,
"systemTime": 1531286768,
"weather": {
"city": "",
"desc": "",
"pm2d5": "",
"png": "",
"tnow": 0,
"wea": 0
}
}
}
使用公式
(int)((time()-(int)($addFriendTime))/86400)可得到加好友多少天。
function calculateday($day){//计算多少月份和多少年,精确到小数点后2位
if($day>=365){
for($i=0;$day>365;++$i){
$day=$day-365;
}
return floor($day/365*100)/100+($i);
}else{
return floor($day/365*12*100)/100;
}
}
结论:
1.给你发坦白说的显示所在城市、多少岁、星座、认识多久,都是从这些数据获得。
2.如果你的好友数量少,你完全可以去一个一个好友的信息查看(哈哈,还是不建议这么做)。
3.如果好友并未设置所在城市、多少岁、星座,这三个信息,你会发现让他重新发送给你坦白说,会一直显示来自一个认识多久的。。。
tb.eleuu.com 站长花费了一个星期的时间完成此页面的开发(1000行代码),所有的信息处理全在本页面完成。
购买的阿里云服务器配置比较低,如果有人在查询时,网页会打不开。
由于个人原因,此页面不再维护更新,故将原理分享出来,仅供学习交流。
也请大家勿打扰站长。站长唯一QQ:775262592