怎么使用微信JSSDK的自定义分享功能

时间:2015-07-08 21:29:19

微信在去年发布JSSDK后,把包括自定义分享在内的众多网页服务接口进行了统一。现在,如果要想自定义分享自己的网页信息给好友或朋友圈,就最好使用这个统一的网页服务接口。没有认证微信号的,可参考文章末尾的办法。

一,首先在公众号管理后台“公众号设置”的“功能设置”里填写JS接口安全域名,域名需要通过ICP备案,没有备案域名可以用SAE、BAE等平台。此外,自定义分享功能需要通过微信认证才能使用,没有认证的可以跟关系好的朋友借用权限,在他的JS接口安全域名设置这里填上你的域名和共享同一个开发者ID。

怎么使用微信JSSDK的自定义分享功能

二,在需要调用JS接口的页面引入微信JSSDK的JS文件:http://res.wx.qq.com/open/js/jweixin-1.0.0.js,这个文件在需要分享的页面是必须要引用的,单独特别重申一下,其他方面请阅读官方文档http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 

引用方法:在网页title标题下面加上:<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

三,下载官方示例代码:

jssdk-php.zip

解压之后在例如PHP文件夹中看到以下文件:

怎么使用微信JSSDK的自定义分享功能

四,复制以上文件到你的游戏目录,为了方便所有游戏调用同一个文件,建议在主机根目录(即一级目录)建立一个JSSDK文件夹。

五,在你需要自定义分享的网页源文件上(主机需支持PHP环境,网页文件名.html改成.php)引用JSSDK:

怎么使用微信JSSDK的自定义分享功能

在网页头部加上如下代码:

<?php
require_once "../jssdk/jssdk.php"; //表示主机根目录下jssdk文件夹内jssdk.php文件
$jssdk = new JSSDK("AppID(应用ID)", "AppSecret(应用密钥)");//填写开发者中心你的开发者ID
$signPackage = $jssdk->GetSignPackage();
?>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>  //必须引用该文件  
   <script>
 wx.config({
   debug:  false,  //调式模式,设置为ture后会直接在网页上弹出调试信息,用于排查问题
   appId: '<?php echo $signPackage["appId"];?>',
   timestamp: <?php echo $signPackage["timestamp"];?>,
   nonceStr: '<?php echo $signPackage["nonceStr"];?>',
   signature: '<?php echo $signPackage["signature"];?>',
   jsApiList: [  //需要使用的网页服务接口
       'checkJsApi',  //判断当前客户端版本是否支持指定JS接口
       'onMenuShareTimeline', //分享给好友
       'onMenuShareAppMessage', //分享到朋友圈
       'onMenuShareQQ',  //分享到QQ
       'onMenuShareWeibo' //分享到微博
   ]
 });
 wx.ready(function () {   //ready函数用于调用API,如果你的网页在加载后就需要自定义分享和回调功能,需要在此调用分享函数。//如果是微信游戏结束后,需要点击按钮触发得到分值后分享,这里就不需要调用API了,可以在按钮上绑定事件直接调用。因此,微信游戏由于大多需要用户先触发获取分值,此处请不要填写如下所示的分享API
wx.onMenuShareTimeline({  //例如分享到朋友圈的API  
   title: '', // 分享标题
   link: '', // 分享链接
   imgUrl: '', // 分享图标
   success: function () {
       // 用户确认分享后执行的回调函数
   },
   cancel: function () {
       // 用户取消分享后执行的回调函数
   }
});
});	
wx.error(function (res) {
 alert(res.errMsg);  //打印错误消息。及把 debug:false,设置为debug:ture就可以直接在网页上看到弹出的错误提示
});
</script>


以上是常规的在动态页面的调用方法,为了更方便的多页面调用,建议通过AJAX跨域请求来实现调用权限,前端部分大概的步骤


那么,没有认证微信号,又没法借用权限的朋友,如何分享呢?这就必须让用户点击分享按钮或游戏结束时触发来改变title标题了,至于分享的小图片,在网页源文件<body>标签后,加上<div style="display: none"> <img src="图片文件的绝对URL地址" /> </div>即可。

OK,大概分享办法就是这样,下载步骤三中的官方示例代码后,在PHP文件夹下sample.php是调用API接口的示例文件。


服务器平台建议使用新浪云SAE,邀请注册地址:https://www.sinacloud.com/public/login/inviter/gaimrn-mddmzeKWrhKWnaoGem699eIGvfoy6dg.html (可直接通过新浪微博授权登录,通过此链接注册可获得200免费云豆奖励,首次充值可获得600云豆奖励)

另外注意一下,2017.03.01起微信iOS客户端将升级为WKWebview内核,在WKWebview中将暂不支持cache jsapi。 
详情请参考https://mp.weixin.qq.com/advanced/wiki?t=t=resource/res_main&id=mp1483682025_enmey

其他可拉到底部看下文章评论,其他网友的反馈和建议。

本站所有文章均为小宇博客原创,转载请注明来源及出处!

作者:宇天行 (关于我

本文首发地址:https://www.huceo.com/post/414.html

或许您还会喜欢这些文章:

Tags: 作者:宇天行 | 分类:开发技术 | 评论:92 | 浏览:136172

您正在以游客身份发表评论:

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

访客2020-07-30 22:02:31回复评论
楼主能给个联系方式吗 代码写的一样 但是不能分享 微信 15618961895 加下我 ,帮忙指导下 谢谢
访客2020-06-24 09:43:20回复评论
这个功能我已经实现了,想要对接的可以联系我q814102037
访客2020-04-07 18:14:09回复评论
非APP非小程序的纯H5页面在浏览器打开可以用吗
宇天行2020-04-08 00:54:09回复评论
可以的
访客2019-11-09 10:00:24回复评论
博主您好,我现在也在使用自定义分享,步骤和方法跟你写的差不多,但是不能在页面使用按钮来触发分享,只能在微信页面右上角的分享时自定义分享的标题内容等信息。请问您之前是可以通过页面按钮的点击来打开分享吗?现在还可以用吗?
宇天行2019-11-09 10:02:48回复评论
并不是直接触发分享,二是做一个浮层,点击按钮指向右上角引导用户分享。
访客2019-11-09 10:04:47回复评论
明白了,那还是只针对右上角的分享事件触发时自定义信息。谢谢博主!
宇天行2019-11-09 11:34:10回复评论
是的,不客气。。
访客2018-05-07 11:40:23回复评论
怎么在手机上进行测试呢?在微信开发者工具中,测试都是ok的,但是虚拟出域名放到手机上就不行
宇天行2019-01-02 07:09:46回复评论
没有添加安全域名?
xio2017-12-11 22:26:31回复评论
支持一下
1232017-12-11 14:25:21回复评论
我想问一下,设置好后文章分享自定义样式是用户自定义的还是我们公众号自定义的?怎么设置的?有没有例子?
宇天行2017-12-11 22:37:53回复评论
你在JSSDK代码里定义的
宇天行2017-12-11 01:19:07回复评论
微信第三方接口和微信小程序消息推送可参考天行数据www.tianapi.com
cathy2017-09-12 16:07:52回复评论
博主 我想问一下在公众号所发布的文章下面添加自定义的分享按钮,不会很明显的写上分享,这能否可行,会有封号的危险吗
宇天行2017-09-12 20:14:52回复评论
公众号文章里面?图片按钮?还是自己做的网页里面分享按钮。没有明显的诱导行为,一般不会封的。
啦啦啦2017-09-21 22:49:08回复评论
博主我想问下 为什么安卓机分享的时候没有图片,ios可以吧图片加载出来
宇天行2017-12-11 01:17:59回复评论
这个就属于兼容问题了
2017-07-19 16:03:15回复评论
至于分享的小图片,在网页源文件标签后,加上 即可。 这个试了多次都无效。
多米爱2017-06-26 11:46:06回复评论
启用https后签名就会错误,不启用https就没有问题
小五2017-06-12 17:30:03回复评论
我用的你的这个 jweixin-1.2.0.js用的是这个js 一直提示errmsg config invalid signature
宇天行2017-06-13 15:26:46回复评论
weixin-1.2.0.js这是微信的,errmsg config invalid signature的意思是签名错误,检查你的参数是否正确传入
小五2017-06-15 17:32:28回复评论
启用https后签名就会错误,不启用https就没有问题
滚滚滚2017-11-27 15:00:44回复评论
https验证出现问题的是https不能调用http的微信的js,把引用微信js的那个路径改为https就可以了
点滴故事2017-06-08 14:01:03回复评论
您的公众服务号,是认证过的,怎么得到的呢?现在个人无法认证啊!岂不是我们个人无法走这条路了?把个人使用JSSDK都堵死了?
宇天行2017-06-08 16:00:52回复评论
对,个人号无法认证也就无法使用JSSDK的自定义分享功能
宇天行2017-05-25 14:17:55回复评论
另外注意一下,2017.03.01起微信iOS客户端将升级为WKWebview内核,在WKWebview中将暂不支持cache jsapi。 详情请参考https://mp.weixin.qq.com/advanced/wiki?t=t=resource/res_main&id=mp1483682025_enmey
宇天行2017-05-25 14:28:29回复评论
目前JSSDk线上版本是 1.0.0 和 1.1.0,建立使用更新版本1.2.0 ,https://res.wx.qq.com/open/js/jweixin-1.2.0.js
李雅洁2017-05-22 11:42:02回复评论
我上周也发现分享自定义不好使,只有苹果5好使,其他一律不好使,各位大神有知道原因的吗?有什么解决方法
宇天行2017-05-09 00:39:43回复评论
关于最近很多朋友JSSDK突然失效的问题,暂时我也不知道原因,经过测试我所使用的jssdk自定义分享功能完全正常(危险公众号是已认证、未过期的服务号),为了方便调用权限我是通过AJAX跨域请求来实现的,前端部分大概的步骤https://www.huceo.com/post/415.html,有空我把后端的代码分享出来。
xxxx2017-04-28 16:58:03回复评论
分享不能自定义 标题 连接 和 图片 ,在手机上用都不行,在电脑端使用分享 就可以自定义
宇天行2017-04-28 19:49:31回复评论
确定接入了JSSDK并认证了微信吗?
xxxx2017-05-05 14:52:56回复评论
确定,之前一直好好的,突然间手机端就不能自定义了
宇天行2017-05-09 00:31:12回复评论
我测试了一下我的jssdk,一切正常
宇天行2017-05-09 00:29:17回复评论
貌似最近很多朋友的jssdk分享功能都失效了,可能是微信更新了相关规则
xxxx2017-04-28 16:57:00回复评论
麻烦问下 分享不能自定义 怎么办
男和可博客2017-04-27 09:55:36回复评论
感谢楼主大大的分享
上海养老院2017-04-27 09:53:14回复评论
学习了,谢谢分享!
感谢楼主的分享
奇虎分享网2016-08-23 06:57:57回复评论
不错学习了,谢谢分享!
评论者2016-04-20 11:20:05回复评论
感谢楼主大大的分享,但是这个无法直接写入SAE,它会报警显示无权限,各位小伙伴也可以参考下这个http://blog.csdn.net/songshimvp1/article/details/49589621
宇天行2016-04-20 19:41:32回复评论
$mmc = memcache_init(); ////开启SAE缓存服务,memcache_get函数读缓存,memcache_set写缓存。
评论者2016-04-22 11:13:30回复评论
多谢楼主提点,我先去参考参考,嘿嘿。
宇天行2016-04-20 19:39:17回复评论
这个应该用SAE的memcache服务
评论者2016-04-20 10:30:25回复评论
楼主大大真是业界良心啊
你于2016-03-10 16:59:29回复评论
没有公众号的方法根本不起作用!
宇天行2016-03-31 11:58:24回复评论
注意看步骤哦
俆书博2015-12-15 14:50:23回复评论
没有认证微信号,又没法借用权限的朋友,如何分享呢?这就必须让用户点击分享按钮或游戏结束时触发来改变title标题了,至于分享的小图片,在网页源文件标签后,加上 即可。
这个方法不行呀
宇天行2015-12-16 11:41:52回复评论
标签后的第一张图片默认是分享icon
俆书博2015-12-23 14:22:01回复评论
什么意思
宇天行2015-12-23 18:23:13回复评论
多说把《body》屏蔽了,微信会默认把《body》标签后的第一张照片作为分享是的小插图。
小白2015-12-07 16:22:41回复评论
我用的就是站长提供的文件,我开了debug true; 但是,微信打开的时候报{"errMsg":config:invalid signature} 这个签名为什么会不一样啊!
宇天行2015-12-07 16:22:41回复评论
去这里校验下http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
小白2015-12-07 16:22:41回复评论
后台生成的签名和网页生成的不一致,appid和appSecret用的是测试号
宇天行2015-12-07 16:22:41回复评论
你扫描下网页右上角的二维码,再加下我的微信吧。
phper0072015-12-07 16:22:41回复评论
这个我会,上海PHP装逼群 217173052
知道91博客2015-12-07 16:22:40回复评论
写的很长也写的很好!我看完了
秒赞不是偶然,是一种态度!
评论者2015-12-07 16:22:38回复评论
请问,.net分享的例子有么
Kevin2015-12-07 16:22:38回复评论
请问博主,这个只适用于微信游戏分享么?对于移动端的微信分享可以么?
宇天行2015-12-07 16:22:38回复评论
都一样的。。
Kevin2015-12-07 16:22:38回复评论
不太理解
ai2015-12-07 16:22:38回复评论
请问可以用html页面调用jssdk吗?
宇天行2015-12-07 16:22:38回复评论
可以,用ajax
汉歌2016-01-03 00:32:43回复评论
你好,能不能帮忙写出html用ajax调用jssdk的代码?非常感谢!
宇天行2016-01-03 12:55:10回复评论
网页右上角,关注微信,自定义菜单微信营销有。
汉歌2016-01-03 18:28:09回复评论
不好意思!这个我早就关注了,但是没找到,能不能麻烦你发出来,非常感谢!
宇天行2016-01-04 22:25:50回复评论
看看这个https://www.huceo.com/post/415.html
cheng2015-12-07 16:22:37回复评论
timestamp: <?php echo $signPackage["timestamp"];?>,这一句不需要单引号吗?没有单引号,js编译不了。加了单引号就提示errMsg":"config:fail"
宇天行2015-12-07 16:22:38回复评论
必须的
评论者2015-12-07 16:22:37回复评论
怎么调用之后会有 GetSignPackage(); ?>这个在页面头部显示
杰宣言2015-12-07 16:22:36回复评论
小弟不胜感激
宇天行2015-12-07 16:22:38回复评论
有帮助就好
注册送一元2015-12-07 16:22:36回复评论
不错的文章,对我太有帮助了
宇天行2015-12-07 16:22:38回复评论
ok
暴博客2015-12-07 16:22:36回复评论
支付宝和微信干上了 支持博主勒,文章很赞,欢迎回访
宇天行2015-12-07 16:22:38回复评论
神仙打架,凡人围观
全民网赚客2015-12-07 16:22:36回复评论
学习了
微部落博客2015-12-07 16:22:35回复评论
尊敬的站长朋友您好,【微部落博客大全114.vprol.com】“建站技术”分类网站巡视,目前微部落博客大全为您贡献总去路55,贵站总来路0。保持网站内容更新和服务器的稳定是提高用户体验的关键,感谢站长的无私分享,微部落博客大全为您的网站流量添砖加瓦。
久闻网佳莉2015-12-07 16:19:34回复评论
暂时还没有用微信做过推广
微部落博客2015-12-07 16:19:34回复评论
尊敬的站长朋友您好,贵站已经被微部落博客大全收录在分类“建站技术”,博客大全最新域名114.vprol.com有空去看看哦。来访IP即首页首栏展示,您贡献来的IP越多,微部落返还的去路IP回报也会越多哦!!!
IT疯狂女2015-12-07 16:19:34回复评论
使用微信JSSDK的自定义分享,虽然知道怎么用但是还是要支持下博主
阿克苏2015-12-07 16:22:38回复评论
求指教,QQ19880794
小白2015-12-07 14:40:54回复评论
我用的就是站长提供的文件,我开了debug true; 但是,微信打开的时候报{"errMsg":config:invalid signature} 这个签名为什么会不一样啊!
小白2015-12-07 14:40:47回复评论
我用的就是站长提供的文件,我开了debug true; 但是,微信打开的时候报{"errMsg":config:invalid signature} 这个签名为什么会不一样啊!
宇天行2015-12-07 14:40:54回复评论
去这里校验下http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
宇天行2015-12-07 14:40:47回复评论
去这里校验下http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
小白2015-12-07 14:40:54回复评论
后台生成的签名和网页生成的不一致,appid和appSecret用的是测试号
小白2015-12-07 14:40:47回复评论
后台生成的签名和网页生成的不一致,appid和appSecret用的是测试号
宇天行2015-12-07 14:40:54回复评论
你扫描下网页右上角的二维码,再加下我的微信吧。
宇天行2015-12-07 14:40:47回复评论
你扫描下网页右上角的二维码,再加下我的微信吧。