不需要你有认证微信号,也不用设置开发者ID、密匙和安全域名就可以直接使用分享功能了,只需在网页上加几行代码就可以在新浪SAE环境下使用微信分享功能。
ajax已经过跨域处理,在您任何需要使用微信分享功能的网页上加上以下几行代码即可:
<script src="http://libs.useso.com/js/jquery/1.10.2/jquery.min.js"></script> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script> url=encodeURIComponent(location.href.split('#')[0]); $.ajax({ type : "get", url : "http://game.huceo.com/jssdk/jssdk_txapi.php?url="+url, dataType : "jsonp", jsonp: "callback", jsonpCallback:"success_jsonpCallback", success : function(data){ wx.config({ appId: data.appId, timestamp: data.timestamp, nonceStr: data.nonceStr, signature: data.signature, jsApiList: [ "onMenuShareTimeline", "onMenuShareAppMessage" ] }); }, error:function(data){ alert("g.huceo.com-no!"); } }); wx.ready(function () { wx.onMenuShareTimeline({ //HTML5游戏中已有自定义分享函数请省略 title: '微信朋友圈上最好玩的手机小游戏', // 分享标题 link: 'http://g.huceo.com/weixin/zhili/', // 分享链接 imgUrl: 'http://g.huceo.com/img/kuaipao.png', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 window.location = "http://mp.weixin.qq.com/s?__biz=MzA4Njg1MjkzOA==&mid=200770039&idx=1&sn=a97ee832189c4b1d5eb9947f7e74e7ad#rd"; }, cancel: function () { // 用户取消分享后执行的回调函数 window.location = "http://mp.weixin.qq.com/s?__biz=MzA4Njg1MjkzOA==&mid=200770039&idx=1&sn=a97ee832189c4b1d5eb9947f7e74e7ad#rd"; } }); wx.onMenuShareAppMessage({ //HTML5游戏中已有自定义分享函数请省略 title: '微信朋友圈上最好玩的手机小游戏', // 分享标题 desc: '微信朋友圈上最好玩的手机小游戏大全,无需下载,即点即玩!', // 分享描述 link: 'http://g.huceo.com/weixin/zhili/', // 分享链接 imgUrl: 'http://g.huceo.com/img/kuaipao.png', // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 window.location = "http://mp.weixin.qq.com/s?__biz=MzA4Njg1MjkzOA==&mid=200770039&idx=1&sn=a97ee832189c4b1d5eb9947f7e74e7ad#rd"; }, cancel: function () { // 用户取消分享后执行的回调函数 window.location = "http://mp.weixin.qq.com/s?__biz=MzA4Njg1MjkzOA==&mid=200770039&idx=1&sn=a97ee832189c4b1d5eb9947f7e74e7ad#rd"; } }); }); wx.error(function (res) { alert(res.errMsg); }); </script>
上次在《怎么使用微信JSSDK的自定义分享功能》中,一些朋友表示还是比较麻烦,此外,上次的文章也忘了考虑大家在SAE空间应用的问题,由于SAE没有写入权限,ticket和token值无法做全局缓存,导致页面运行超过7200秒后报错。
在使用SAE空间做WEB应用的朋友,可以使用SAE的Memcache服务(控制台左侧-服务管理-点击初始化)来缓存拼接URL获取的ticket和token值。
在上篇文章中,请将jssdk.php文件中48行:
$data = json_decode(file_get_contents("jsapi_ticket.json"));
替换为:
$mmc = memcache_init(); ////开启SAE缓存服务 $data = json_decode(memcache_get($mmc,"ticket")); //SAE方法读缓存
第59、60、61行:
替换为:
memcache_set($mmc,"ticket",json_encode($data));//SAE方法写到缓存
同样,第72、82、83、84行替换为以上代码,ticket改为token即可。
此外,本微信公众号下的用户,回复“天行API”就可以直接注册使用天行API数据服务了哦,后期正在规划更强大的功能,例如自定义API,可以满足大家采集任何指定网站的数据进行API输出的需求,上线在具体讲讲。
代码运行环境新浪云SAE开通地址:https://www.sinacloud.com/public/login/inviter/gaimrn-mddmzeKWrhKWnaoGem699eIGvfoy6dg.html (首次注册可获得200免费云豆奖励,首次充值可获得600云豆奖励)