闲来无事,近日对QQ应用开发有了兴趣。
想法:
在自己的pc上搭建一个服务器,可以使Tomcat,运用Eclipse传建一个web项目,框架为Spring MVC
申请一个免费域名,映射到我的本地,这样就可以在外网看到我正在开发的项目了,并且我自己还便于维护。
将这个项目地址投放到QQ申请的应用上调试接口即可:)
开放平台地址:
创建一个属于自己的应用,类型:网页。非托管方式。保存后TX将分配一个appid、appkey
这里为什么要选择非托管方式呢?因为选择非托管的话,就意味着应用平台地址可以填写自己本地部署的应用于外网的项目。而托管的话,就必须将项目放到TX云服务器上,因为只是学习,并没有要去真正的开发项目,所以暂时如此,虽然会随着自己本地Tomcat断开就看不到效果了。。
开始:
本地tomcat端口改为8080
1.申请域名:
http://my.dot.tk/cgi-bin/login01.taloha
外网关联内网:下载nat123 from nat123.com,创建一个端口映射
dot tk申请的域名manage dns CNAME设置:
name:www
target:nat123自主域名
2.下载JAVA SDK OPENV3
我们发现调用接口时需要openid,通过了解openid、openkey、pf等参数的获取都是在调试的时候转入的。
我们需要在Controller端将这些参数获取,当然appid、appkey是从properties里获取
@RequestMapping(value ={"/index.htm"," /"},method =RequestMethod.GET)
public String toHome(Model model,HttpServletRequest request,
HttpServletResponse response){
model.addAttribute("appid", QQConfig.getValue("app_ID"));
model.addAttribute("appkey", QQConfig.getValue("app_KEY"));
model.addAttribute("openid", request.getParameter("openid"));
model.addAttribute("openkey", request.getParameter("openkey"));
model.addAttribute("pf", request.getParameter("pf"));
return "index";
}
这时,在js端就可以通过ajax访问调用接口了
var appid =$j("#appid").val();
var appkey =$j("#appkey").val();
var openid =$j("#openid").val();
var openkey =$j("#openkey").val();
var pf =$j("#pf").val();
//用户信息
$j.ajax(
{
type: "get",
async: false,
url: getUserInfo,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
‘appid‘:appid,
‘appkey‘:appkey,
‘openid‘:openid,
‘openkey‘:openkey,
‘pf‘:pf
},
dataType: "json",
cache: false,
success: function (data) {
if(data.ret==‘1002‘){
//登陆失效,需重新登陆
fusion2.dialog.relogin();
}else{
$j("#userinfo").html("用户信息:<br>"+data);
}
},
error: function (err) {
alert(err);
}
}
);
前端jsp代码如下:
<center>
<div id ="hidden_area">
<input type="hidden" id="appid" value="${appid}" />
<input type="hidden" id="appkey" value="${appkey}" />
<input type="hidden" id="openid" value="${openid}" />
<input type="hidden" id="openkey" value="${openkey}" />
<input type="hidden" id="pf" value="${pf}" />
</div>
Just for test~
<br>
<span id="userinfo"></span>
<div>
<input type="button" value="加入应用群" id="joinAppGroup" />
</div>
<div>
<span>发送一条微博:</span>
<input type="text" id="weiboContent" /><br>
<span id="sync">是否同步?</span><input type="checkbox" id ="syncflag" value="0" checked="checked"/>
<span id="error_msg" style="color:red ;display :none" >不能为空</span>
<input type="button" value="发送" id="sendWeibo" />
</div>
<input type="text" name="app" value="sss">
<input type="text" name="app" value="ttt">
</center>
调试效果:

原文:http://www.cnblogs.com/bloodthirsty/p/4108935.html