我在网上发现很多QQ群验证的例子,但是大多都是千篇一律,登录群空间后取网页源码判断有没有这个群这种思路,我只能说,这种太low了。
现在我来给大家一个简单实用的方法。
首先登录群空间之后,进入到自己需要验证的群空间去,右上角有几个图标,代表了群相册,群文件,群论坛,群成员。我们需要用到的就是群论坛功能,点击群论坛,会进入一个新的html界面,这个群论坛只有本群成员能进去,进去后的地址是http://qgc.xxx.xxx/xxxx
但是如果是非本群成员点击进入,则会提示 不是本群成员,地址是http://bbs.xxx.xxx/xxxx
所以要判断是否是本群成员,只需要试试进入群论坛,看是qgc还是bbs即可。
文末附上一段事例代码
/*
**使用WebView来进行验证
**布局自己想办法
*/
public void 验证(WebView webview,int 群号){
final int groupID = 群号;
//启用js
webview.getSettings().setJavaScriptEnabled(true);
//自定义WebViewClient事件
webview.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap ico){
//页面加载开始
if(url.equals("http://qun.qzone.qq.com/group")){
//说明登录成功
//隐藏WebView
//view.setVisibility(View.GONE);
}
}
@Override
public void onPageFinished(WebView view, String url){
//页面加载完毕
//获取地址的第8,9,10位字符串
String tag = url.substring(7,10);
if(tag.equals("qun")){
//如果是qun已经进入了群空间
//开始进入群论坛
view.loadUrl("http://bbs.qun.qq.com/forumdisplay?gId=" + groupID);
}else if(tag.equals("qgc")){
//如果是qgc就验证成功
//群论坛地址后面有一串数字,是群论坛的唯一id,只有群成员能够拿到,可用于加解密的密匙
String bbsid = url.substring(url.lastIndexOf("/") + 1, url.length());
Log.d("验证结果","成功,BBSID="+bbsid);
}else if(tag.equals("bbs")){
//如果还是bbs,那就失败了
Log.d("验证结果","失败");
}
//其他地址不做处理,另外如果是注册帐号或找回密码,意见反馈,下载qq的地址
//需要使用外部浏览器打开以免干扰验证
}
});
//载入QQ登录界面
webview.loadUrl("http://ui.ptlogin2.qq.com/cgi-bin/login?appid=549000912&daid=5&style=12&s_url=http://qun.qzone.qq.com/group");
}