微信分享JS接口目前已失效,以前可以自定义分享的标题、描述、图片、链接地址在微信6.0.2版本中失效。
官方回复如下:
旧版的获取分享状态及设置分享内容的JS接口一直用于内部业务,并未对外开放,在微信公开的开放文档里面并没有此接口。 某些第三方借助微信客户端漏洞在未获得权限的情况下使用接口,微信6.0.2版本对此漏洞做了修复以确保用户分享内容的准确性,避免诱导分享。 另外,不久将向广大公众号开放正式分享接口供开发者使用。
临时解决方案:
标题:修改<title></title>中的内容 图片:在<body>最前面添加一个图片 <div style=”height:1px;overflow:hidden;”> <img src=”xxx” /> </div> 微信分享的时候会去读取第一张200*200以上大小的图片作为分享的图片, 链接:修改location.href中的内容 描述:用title冒充,改变title的innerHtml。
最终解决方案:
等待微信开放新的分享接口
据小道消息微信正在做官方的JS API,基本上是走和公众号API类似的路线,要通过APPID和APPSECRET拿到code,通过code获取token,通过token加时间戳和随机字符串SHA1算出signature签名,然后用签名和APPID(目前不知道此ID是公众号ID还是开放平台ID)来请求官方的JS API给予各种权限。还要绑定URL,不是随便写个网页就能调用的了。
反正是挺麻烦的,基于安全考虑,肯定一套算法都要配合使用后端技术比如PHP、asp.net生成签名,不再是纯前端html就可以搞定的了。
下面是新api的大致语法:
//初始化配置 wx.config({ debug: true, // 调试模式,会打印所有调用返回信息 appId: ‘‘, timestamp: 0, // 时间戳 nonceStr: ‘‘, // 随机串 signature: ‘‘,// 签名,参考我上面给出的解释 jsApiList: [] // 请求权限 }); //分享朋友圈 wx.onMenuShareTimeline({ title: ‘‘, // 分享标题 link: ‘‘, // 分享链接 imgUrl: ‘‘, // 分享图标 success: function () { }, //成功回调 cancel: function () { }, //失败回调 });