一、问题描述
微信分享时,分享失败,没有标题和图片;
*开启debug:true调试,调试提示正常;
*使用微信开发者工具调试,分享页正常;
*但使用微信分享,出现分享失败的情况。
二、问题解析
1、在js中开启debug:true调试,调试提示{“errMsg”:"config:ok"}。
*开启后,在分享时,会提示alert出调试信息;
*获取的签名正常时,会提示 {“errMsg”:"config:ok"},
分享朋友圈时,会有对应的success提示;
*切记这个debug调试只是能判断获取的签名是否正常,如果后续引用的js中的赋值出现问题,同样会导致分享失败;这就是为什么调试正常,但是却分享失败。
2 使用微信开发者工具调试,分享页正常;
微信开发者工具中会提示分享开始和结束的所有信息,详见下图:
3 经最后调试发现问题,提供的分享链接link(如2中截图),没有"http://"导致最后的分享失败。
三 总结
1、分享失败的原因
*获取的签名错误,可以通过打开调试和微信开发者工具,对获取签名的代码进行一步步调试;
确定接口中生成签名的url和页面中wx.config的url一致,url要包括http://,并且是动态获取的当前访问页面的url;
即生成签名的url和页面中wx.config的url必须是当前页面完整的url,即和当前页面浏览器中访问的url一致,不然也会报错‘
确定微信公众号的appid和appsecret是否一致;
确定是否生成了有效的access_token;
生成签名的几个参数拼接的顺序要按照ascii值大小排序
详细排查详见:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62的附录5-常见错误及解决方法
2 如果在生成签名正确的前提下,分享仍然失败,就要考虑js中的link分享链接,js中的分享链接要包括http://,否则会分享失败
3 分享的链接必须是js安全域名里中所包含的,如果传参时,没有对link进行赋值,那执行时会默认为当前路径,同样可以分享成功。
4、最新版的微信分享有所更新,旧版的一些接口即将废弃,可以引用新版微信js和使用新版的方法分享
5、开发者工具 每个版本的调试效果不同,有的版本的调试效果不给力,可以更换版本看效果。