emlog评论通过QQ获取昵称资料

腾讯开放平台

https://wiki.open.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF

教程

使用emlog博客程序朋友有采用第三方评论,也有采用内置评论的,使用第三方评论的还好,可以直接QQ登陆,但是如果是采用内置评论的很多访客都不愿意填写信息,因此可能会丢失很多评论。今天分享一篇采用js根据用户填写的QQ号码拉取用户的昵称信息,然后自动填写表单,这样用户只需要输入QQ就能实现自动填写了。代码以默认模板为例。

1.导入jquery

emlog默认jquery代码如下(放入之间),如果有加载的请自动忽略此步。

<script src="<?php echo BLOG_URL;?>include/lib/js/jquery/jquery-1.7.1.js" type="text/javascript"></script>

2.找到模板文件module.php中的

<input type="hidden" name="gid" value="<?php echo $logid; ?>" />

在上面代码的后面加入代码

<input id="qq" type="text" name="qq" maxlength="49" placeholder="填入qq自动获取信息" value="" size="22" tabindex="0"><div id="error"></div><div id="ajaxloading"></div>

然后在每一个input加上id信息,例如: name=“commail” 后面添加 id=“commail”

3.建立一个文件夹,如qq放入根目录中,在里面建一个文件index.php,代码如下

<?php
header("Content-type: application/json; charset=utf-8"); 
$qq = $_GET['qq'];
$html = file_get_contents('http://r.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins='.$qq);
$nic = explode(',',$html);
$name = trim(mb_convert_encoding($nic[6], "UTF-8", "GBK"),'"');
$img = file_get_contents('http://ptlogin2.qq.com/getface?appid=1006102&uin='.$qq.'&imgtype=3');
preg_match('/pt.setHeader\((.*?)\);/',$img,$picc);
$pic = json_decode($picc[1]);
$json['name'] = $name;
$json['pic'] = $pic->$qq;
echo $_GET['callback'].'('.json_encode($json).')';
?>

4.加入js代码,代码如下(放在之间,代码中的网址路径…/go/qq/需要改成你自己创建的,即第三步中创建的路径):

<script>
$(function () {
Lotto = {};
Lotto.comment = function(){
$("#qq").blur(function(){
		 	$('#qq').attr("sl",true);
		 	$("#ajaxloading").html('<img src="[你的网站,必须加http://]/go/qq/loading.gif"><a style="font-size:12px;margin-left:5px;">正在获取QQ信息..</a>');
	    	$.getJSON('[你的网站,必须加http://]/go/qq/?qq='+$('#qq').val()+'&callback=?', function(q){
	    		if(q.name){
	    			$('#comname').val(q.name);
		    		$('#commail').val($('#qq').val()+'@qq.com');
		    		$('#comurl').val('http://user.qzone.qq.com/'+$('#qq').val());
		    		$('#qq').attr("disabled",false);
		    		$("#ajaxloading").hide();
	    		}else{
	    			$("#ajaxloading").hide();
	    			$("#error").html('qq账号错误').show().fadeOut(4000);
		   			$('#qq').attr("sl",false);
	    		}
	    	});
		});
	
}
Lotto.run = function(){this.comment();};
Lotto.run();
});
</script>

友情提示:如果遇到接口失效,请无法获取资料的朋友点击腾讯开放平台的超链接,更改第四步的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值