微信分享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 () { }, //失败回调
});
|