最近修改了一下转发链接到朋友和分享朋友圈没有缩略图的问题,以前都可以直接抓取的,现在官方改了,只能用微信JS-SDK接口。话不多说,进入正题。
1、在认证好的公众号里面配置业务域名和JS接口安全域名,具体位置在微信公众号平台,设置—公众号设置—功能设置。
2、需要用到的文件:
这里有写好的模板,我这里只用了php的,自己改了一下前端的分享模板。
链接:https://pan.baidu.com/s/1zYd-m4lfUxarCdLhs3KW0w
提取码:rwzy
3、其他的在网盘下载就好了,我这里写一下 sample.php 我改动的地方:
<?php
require_once "jssdk.php";
$jssdk = new JSSDK("wxdcxxxxxxxxxxxxxxxx", "ae8xxxxxxxxxxxxxxxxxxxxxxxxx"); //APPID和SECRET
$signPackage = $jssdk->GetSignPackage();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>益呼易吸防治慢性病呼吸疾病健康四川行</title>
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
wx.config({
debug: false, // 开启调试模式,上线之后改成false,测试的时候用true
appId: '<?php echo $signPackage["appId"];?>', // 必填,公众号的唯一标识
timestamp: <?php echo $signPackage["timestamp"];?>, // 必填,生成签名的时间戳
nonceStr: '<?php echo $signPackage["nonceStr"];?>', // 必填,生成签名的随机串
signature: '<?php echo $signPackage["signature"];?>', // 必填,签名
jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'] // 必填,需要使用的JS接口列表
});
wx.ready(function () {
//监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口
wx.onMenuShareTimeline({
title: '益呼易吸防治慢性病呼吸疾病健康四川行',
link: 'https://xxxxxx.com/t.php',
imgUrl: 'https://xxxxxx.com/yhyx17_1.jpg', //缩略图,建议尺寸小一点,弄成正方形
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
alert('用户点击分享到朋友圈');
},
success: function (res) {
alert('已分享');
},
cancel: function (res) {
alert('已取消');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
//监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口
wx.onMenuShareAppMessage({
title: '益呼易吸防治慢性病呼吸疾病健康四川行',
desc: '国家二级|呼吸专科医院,致力于支气管哮喘、肺气肿、肺心病、慢阻肺、支气管扩张、间质性肺疾病等呼吸系统疾病的临床治疗和研究。是一所集预防、医疗、保健、康复、急救、科研、公益、慈善于一体的专家型、研究型医院。',
link: 'https://xxxxxx.com/t.php',
imgUrl: 'https://https://xxxxxx.com/yhyx17_1.jpg', //缩略图,建议尺寸小一点,弄成正方形
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
alert('用户点击发送给朋友');
},
success: function (res) {
alert('已分享');
},
cancel: function (res) {
alert('已取消');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
});
</script>
<body>
</body>
</html>
效果如下: