微信自定义分享到朋友圈、好友
微信分享API还不是那么坑,很好对接,下面是流程:
1、拥有API权限
在公众号左侧“开发”->“接口权限”->“分享接口”,查看是否获得了
2、配置JS接口安全域名
在“公众号设置”->“功能设置”,配置JS接口安全域名,不知道什么填写的,微信有提示
然后就开始开发了,可以下载微信的DEMO看看怎么写
DEMO下载:http://demo.open.weixin.qq.com/jssdk/sample.zip
开发过程:
1、引入微信JS
<s cript src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></s cript>
备注:支持使用 AMD/CMD 标准模块加载方法加载,支持https
2、配置接口注入权限验证
wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: appId, // 必填,公众号的唯一标识 timestamp: timestamp, // 必填,生成签名的时间戳 nonceStr: nonceStr, // 必填,生成签名的随机串 signature: signature, // 必填,签名 jsApiList: [ 'onMenuShareTimeline' ] //必填,需要使用的JS接口列表});
JS接口列表:详见附录2 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
config配置的参数demo有写,可以看看整合到自己系统中
public function getSignPackage() { $jsapiTicket = $this->getJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode. $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $timestamp = time(); $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key 值 ASCII 码升序排序 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; $signature = sha1($string); $signPackage = array( "appId" => $this->appId, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, "signature" => $signature, "rawString" => $string ); return $signPackage; }
上面就是config配置中所用的参数。
3、做好准备
要写在wx.ready里面,这个都懂
wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。/*这里写事件以及逻辑,比如:分享到朋友圈,分享给朋友等等*/});
配置处理失败验证
wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。});
4、开始写事件
特别注意,一定要注意了,ready里面有那个事件,config的jsApiList里面也要对应有,否则不管用的,这是个坑,,,
//分享到朋友圈wx.onMenuShareTimeline({ title: '微信自定义分享', // 分享标题 link: 'http://www.webstr.top', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: '', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 }});//分享给朋友wx.onMenuShareAppMessage({ title: '微信自定义分享', // 分享标题 desc: '仔细看文档', // 分享描述 link: 'http://www.webstr.top', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: '', // 分享图标 type: 'link', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 }});//分享到QQwx.onMenuShareQQ({ title: '微信自定义分享', // 分享标题 desc: '仔细看文档', // 分享描述 link: 'http://www.webstr.top', // 分享链接 imgUrl: '', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 }});//分享到QQ空间wx.onMenuShareQZone({ title: '微信自定义分享', // 分享标题 desc: '仔细看文档', // 分享描述 link: 'http://www.webstr.top', // 分享链接 imgUrl: '', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 }});//分享到腾讯微博wx.onMenuShareWeibo({ title: ''微信自定义分享', // 分享标题 desc: '仔细看文档', // 分享描述 link: 'http://www.webstr.top', // 分享链接 imgUrl: '', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 }});
到现在就已经完成了。有什么不懂或者不会的可以在下面留言区留言,think you!
有 0 位网友评论: