开源POST获取QQ群列表和成员
看到有个帖子,好像还很火,好像没开源,不发附件,刚出来,怕违规,贴下代码吧。
获取群的代码:
.版本 2
.子程序 获取群列表, , 公开
.参数 cs_群, 群, 参考 数组
.局部变量 jb_网页返回, 文本型
.局部变量 jb_js, 对象
.局部变量 jb_计次, 整数型
.局部变量 jb_群, 群
jb_网页返回 = 编码_Utf8到Ansi (网页_访问 (“http://qun.qzone.qq.com/cgi-bin/get_group_list?uin=” + cx_QQ号码 + “&g_tk=” + 计算群gtk (文本_取出中间文本 (“; ” + cx_Cookie, “; skey=”, “;”)), , , cx_Cookie))
' 调试输出 (jb_网页返回)
' _Callback({"code":0,"data":{"group":[{"auth":0,"flag":0,"groupid":9678082,"groupname":"android开发全国总群"},{"auth":0,"flag":0,"groupid":12114059,"groupname":"share your order"},{"auth":0,"flag":0,"groupid":29030916,"groupname":"思科网络技术联盟"}
jb_js.创建 (“scriptcontrol”, )
jb_js.写属性 (“language”, “javascript”)
jb_js.方法 (“eval”, “var json;function _Callback(a){json=a};” + jb_网页返回)
清除数组 (cs_群)
.计次循环首 (jb_js.数值方法 (“eval”, “json.data.group.length”), jb_计次)
jb_群.群号码 = jb_js.文本方法 (“eval”, “json.data.group[” + 到文本 (jb_计次 - 1) + “].groupid”)
jb_群.群名称 = jb_js.文本方法 (“eval”, “json.data.group[” + 到文本 (jb_计次 - 1) + “].groupname”)
加入成员 (cs_群, jb_群)
.计次循环尾 ()
获取群成员代码:
.版本 2
.子程序 获取群成员, , 公开
.参数 cs_群号码, 文本型
.参数 cs_群员, 群员, 参考 数组
.局部变量 jb_网页返回, 文本型
.局部变量 jb_js, 对象
.局部变量 jb_群员, 群员
.局部变量 jb_计次, 整数型
jb_网页返回 = 编码_Utf8到Ansi (网页_访问 (“http://qun.qzone.qq.com/cgi-bin/get_group_member?uin=” + cx_QQ号码 + “&groupid=” + cs_群号码 + “&g_tk=” + 计算群gtk (文本_取出中间文本 (“; ” + cx_Cookie, “; skey=”, “;”)), , , cx_Cookie))
' 调试输出 (jb_网页返回)
' _Callback({"code":0,"data":{"alpha":0,"bbscount":0,"class":10048,"create_time":1116133333,"filecount":0,"finger_memo":"android android android android android","group_memo":"","group_name":"android开发全国总群","item":[{"iscreator":0,"ismanager":0,"nick":"影迷","uin":477787},{"iscreator":0,"ismanager":0,"nick":"' 丁小白","uin":708411},
jb_js.创建 (“scriptcontrol”, )
jb_js.写属性 (“language”, “javascript”)
jb_js.方法 (“eval”, “var json;function _Callback(a){json=a};” + jb_网页返回)
清除数组 (cs_群员)
.计次循环首 (jb_js.数值方法 (“eval”, “json.data.item.length”), jb_计次)
jb_群员.QQ = jb_js.文本方法 (“eval”, “json.data.item[” + 到文本 (jb_计次 - 1) + “].uin”)
jb_群员.昵称 = jb_js.文本方法 (“eval”, “json.data.item[” + 到文本 (jb_计次 - 1) + “].nick”)
加入成员 (cs_群员, jb_群员)
.计次循环尾 ()
.子程序 计算群gtk, 文本型
.参数 cs_skey, 文本型
.局部变量 jb_js, 对象
.局部变量 jb_结果, 文本型
' 调试输出 (cs_skey)
jb_js.创建 (“scriptcontrol”, )
jb_js.写属性 (“language”, “javascript”)
jb_js.方法 (“eval”, #群gtk)
jb_结果 = jb_js.文本方法 (“eval”, “qungtk('” + cs_skey + “')”)
' 调试输出 (jb_结果)
返回 (jb_结果)
计算群空间gtk的js代码(不同于QQ空间的gtk):
function qungtk (a) {
for (var b = 5381, c = 0, d = a.length; c < d; ++c) b += (b << 5) + a.charCodeAt(c);
return b & 2147483647
};
上图cx_uin,cx_cookie啥的就不用我说了。
BY丶显示 发表于 2017-1-25 16:44
有没有获取自己QQ所有分组好友的?可以分享一下不?
获取自己好友和分组(QQ空间相关的都有):
.版本 2
.子程序 获取好友, 文本型, 公开, 返回code
.参数 cs_好友信息集, 好友信息, 参考 数组
.参数 cs_组信息集, 组信息, 参考 可空 数组
.参数 cs_message, 文本型, 参考 可空, 提交返回json里message
.局部变量 jb_cookie, 文本型
.局部变量 jb_网页返回, 文本型
.局部变量 jb_好友信息, 好友信息
.局部变量 jb_组信息, 组信息
.局部变量 jb_计次, 整数型
.局部变量 jb_script, 对象
jb_网页返回 = 编码_Utf8到Ansi (网页_访问 (“http://user.qzone.qq.com/p/r/cgi-bin/tfriend/friend_show_qqfriends.cgi?uin=” + cx_QQ号码 + “&follow_flag=1&groupface_flag=0&fupdate=1&g_tk=” + cx_gtk, , , cx_Cookie, jb_cookie, ))
cx_Cookie = 网页_Cookie合并更新 (cx_Cookie, jb_cookie)
' 置剪辑板文本 (jb_网页返回)
jb_script.创建 (“scriptcontrol”, )
jb_script.写属性 (“language”, “javascript”)
jb_script.方法 (“ExecuteStatement”, “var json,_Callback=function(a){json=a};” + jb_网页返回)
.如果真 (取反 (是否为空 (cs_message)))
cs_message = jb_script.文本方法 (“Eval”, “json.message”)
.如果真结束
jb_script.方法 (“eval”, “var users=json.data.items”)
.计次循环首 (jb_script.数值方法 (“eval”, “users.length”), jb_计次)
jb_好友信息.uin = jb_script.文本方法 (“eval”, “users[” + 到文本 (jb_计次 - 1) + “].uin”)
jb_好友信息.groupid = jb_script.文本方法 (“eval”, “users[” + 到文本 (jb_计次 - 1) + “].groupid”)
jb_好友信息.name = jb_script.文本方法 (“eval”, “users[” + 到文本 (jb_计次 - 1) + “].name”)
jb_好友信息.remark = jb_script.文本方法 (“eval”, “users[” + 到文本 (jb_计次 - 1) + “].remark”)
jb_好友信息.img = jb_script.文本方法 (“eval”, “users[” + 到文本 (jb_计次 - 1) + “].img”)
jb_好友信息.yellow = jb_script.文本方法 (“eval”, “users[” + 到文本 (jb_计次 - 1) + “].yellow”)
jb_好友信息.online = jb_script.文本方法 (“eval”, “users[” + 到文本 (jb_计次 - 1) + “].online”)
jb_好友信息.v6 = jb_script.文本方法 (“eval”, “users[” + 到文本 (jb_计次 - 1) + “].v6”)
加入成员 (cs_好友信息集, jb_好友信息)
.计次循环尾 ()
.如果真 (取反 (是否为空 (cs_组信息集)))
jb_script.方法 (“eval”, “var groups=json.data.gpnames”)
.计次循环首 (jb_script.数值方法 (“eval”, “groups.length”), jb_计次)
jb_组信息.gpid = jb_script.文本方法 (“eval”, “groups[” + 到文本 (jb_计次 - 1) + “].gpid”)
jb_组信息.gpname = jb_script.文本方法 (“eval”, “groups[” + 到文本 (jb_计次 - 1) + “].gpname”)
加入成员 (cs_组信息集, jb_组信息)
.计次循环尾 ()
.如果真结束
返回 (jb_script.文本方法 (“eval”, “json.code”))
kuaibeyond 发表于 2017-2-13 22:29
能复制个样板吗? 谢谢
.版本 2
.数据类型 群
.成员 群号码, 文本型
.成员 群名称, 文本型
.数据类型 群员
.成员 QQ, 文本型
.成员 昵称, 文本型
我天……就这几个成员啊,加上就行 可以的,谢谢分享 很好、很强大,这个一定得支持!!! 支持一下 多谢分享:) 请问下这个有什么用啊啊 不会用,但也支持楼主啦! 学习写法,易语言渣渣不懂 有没有获取自己QQ所有分组好友的?可以分享一下不?