微信分享自定义标题,描述内容,对接jssdk,h5-php

微信分享自定义标题,描述内容,对接jssdk,h5-php

1.微信JS-SDK是微信公众平台,对接jssdk需要先开通微信公众号,且公众号需要通过认证,只有通过认证,分享等接口才能倍开通。

2.先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”,然后再填写IP白名单,否则后面会报错导致分享失败。

3.可从官方下载你所要使用的后端类库导入项目:

http://demo.open.weixin.qq.com/jssdk/sample.zip   备注:链接中包含php、java、nodejs以及python的示例代码供第三方参考,下图为php示例

4.引入js文件

在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js

如需进一步提升服务稳定性,当上述资源不可访问时,可改访问:http://res2.wx.qq.com/open/js/jweixin-1.6.0.js (支持https)。

5.通过config接口注入权限验证配置,弹出OK表示配置成功

wx.config({
  debug: true,
  appId: '<?php echo $signPackage["appId"];?>',
  timestamp: <?php echo $signPackage["timestamp"];?>,
  nonceStr: '<?php echo $signPackage["nonceStr"];?>',
  signature: '<?php echo $signPackage["signature"];?>',
  jsApiList: [
    // 所有要调用的 API 都要加到这个列表中
  ]
});
wx.ready(function () {
  // 在这里调用 API
});

6.调用自己需要的接口,updateAppMessageShareData,updateTimelineShareData,提示成功便可以进行分享了。

//微信公众号-QQ微信分享描述
wx.config({
    debug: false,//调试模式
    appId: '<?php echo $signPackage["appId"];?>',
    timestamp: <?php echo $signPackage["timestamp"];?>,
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
    signature: '<?php echo $signPackage["signature"];?>',
    jsApiList: [
        // 所有要调用的 API 都要加到这个列表中
        'updateAppMessageShareData',
        'updateTimelineShareData'
    ]
});
wx.ready(function () {   //需在用户可能点击分享按钮前就先调用
    var shareData = {
        title: '在吗?古人给你寄了一份新年祝福,请查收!', // 标题
        desc: '快来翻开专属你的2021愿望签,还有新年大礼等着你哟~',   // 描述
        link: JsWap+'/activity_index.php', // 分享的URL,必须和当前打开的网页的URL是一样的
        imgUrl: JsWap+'/images/logo_lu.png'    // 缩略图地址
    };
    wx.updateAppMessageShareData(shareData);
    wx.updateTimelineShareData(shareData);
});
wx.error(function (res) {
    console.log(res.errMsg);//错误提示
});

7.微信分享各种失败的原因

(1).ReferenceError: wx is not defined

此报错解决办法有两种:一种把 http://res.wx.qq.com/open/js/jweixin-1.6.0.js下载到本地项目中,本地引入,不要直接引入在线链接。第二种是在页面头部增加meta标签 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

不过网上有其它2种方法说在引入js链接之前重置define、require。或引入微信js链接位置尽可能提前。(但是对接1.6.0版本,这两种我都试过,都无效)

<script type="text/javascript">
    define = null;
    require = null;
</script>
<script src="http://res2.wx.qq.com/open/js/jweixin-1.6.0.js" type="text/javascript"></script>

(2).获取签名的动态url和你域名不一样导致签名失败不能成功分享,多半是动态获取https域名不成功导致,可以修改此处代码

(3).不能成功获取token导致生成签名失败,不能成功分享,

原因是公众号里面没配置IP白名单导致,按照我上面的步骤来开发则不会出现此问题

注意:上面两种接口足够分享微信朋友和微信朋友圈,但是从QQ分享到朋友和空间时自定义的图片会出错,标题和描述正常,用废弃接口也是,暂未找到原因,估计官方bug,还有说解决办法市对接QQ开放平台QQ分享,但是我没试过。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风眠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值