前篇废话不少,做为程序员仍是讲具体功能实现吧。php
在“微信二次分享功能开发笔记”博客中我完整的把分享功能怎么实现讲了一遍,其实那个是我在工做中的笔记。是在工做中遇到问题后,一步一步去修复而后总结出来的,这样的结果可能就是由于太深刻而没法看到全局,因此致使此次照葫芦画瓢觉得瓜熟蒂落,结果仍是差点栽了。html
关于获取access_token,还有jsapi_ticket各类数据以及在公众号上的各类配置,在网上各类博客包括个人博客“微信二次分享功能开发笔记”,以及微信官方开发文档都有详细的说明。就不在这里累叙,我想讲的是这些步骤走完以后你仍然发现分享没有成功须要注意的几个点。固然这是我本身走过的坑,确定不能解决全部问题,因此,你们懂的,有其余问题能够在博客下方留言,我们一块儿探讨。程序员
首先,咱们看微信的配置:api
1 wx.config({ 2 debug: false, // 开启调试模式,调用的全部api的返回值会在客户端alert出来 3 appId: data.appId, // 必填,公众号的惟一标识 4 timestamp: data.timestamp, // 必填,生成签名的时间戳 5 nonceStr: data.nonceStr, // 必填,生成签名的随机串 6 signature: data.signature,// 必填,签名,见附录1 7 jsApiList: [ 8 "onMenuShareTimeline", 9 "onMenuShareAppMessage", 10 "onMenuShareQQ", 11 "onMenuShareWeibo", 12 "onMenuShareQZone", 13 "showMenuItems" 14 ] // 必填,须要使用的JS接口列表 15 })
通常appId是不会错的,可是也有例外,好比我以前的项目,由于公司有好几个公众号,所以后台作的时候根据传过去的公众号名字对应给出数据的,因为以前没有经验,因此发了别的公众号过去,天然拿到的是错的。其次,常常报错的是签名invalid signature,缘由可就太多了。appId错了签名通常不可能对的(反正没碰见过appId错签名对的状况),还有可能就是咱们分享的自定义内容中的link错了,shareConfig通常是这样的:安全
1 { 2 title: '', // 分享标题 3 desc: '', // 分享描述 4 link: '', // 分享连接 5 imgUrl: '', // 分享小图 6 type: '', // 分享类型,music、video或link,不填默认为link 7 dataUrl: '', // 若是type是music或video,则要提供数据连接,默认为空 8 success: cb, 9 cancel: cb 10 }
在这里,这里的link指的是你分享出去后用户点击进入的页面。注意link后面的连接的主域名必定要加在 “JS接口安全域名”里面,好比你的连接是‘http://www.xx.com/link.html’,你就要把‘www.xx.com’放到 “JS接口安全域名”里。再次,若是你分享出去,没有看到小图标,先检查一下这个配置里面的imgUrl是不是绝对地址,若是不是,必定要换上绝对地址,必定不能写‘//a.m.cn/img/x.png’。最后,检查一下jsApiList,看看你要的功能有没有在这个清单里面。微信
以上就是我遇到的问题了,若是有其余问题,欢迎一块儿讨论。app