闲来无事,近日对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>
调试效果:
时间: 2024-10-10 06:27:40