微信分享自定义图片
2015-12-16 18:29
507 查看
必要的前提准备
PS:本文的方法只适合6.0.2.58以及更高版本的微信客户端。旧版参考这个非官方的API
这几个是超越代码之上的存在,没有这几个认证,即使配置全正确也不能获得正常的分享卡片:
微信认证过的公共号
必须是认证过的,未认证或者认证过期都不行
一个域名
需要备案过的
一台服务器
因为前端页面需要的
appId、
signature是需要后台传递过来的。官方默认后台程序有
PHP、
Python、
Node、
Java版本,不过我这里以
PHP作为演示(后台其实不在本文的解释范围内,超纲了╮(╯▽╰)╭)
配置过程
1. 绑定域名
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”(就是发布用的那个域名)
2. 获取access_token
这部分工作属于后台开发,主要功能是利用公共号APPID、
APPSECRET从微信服务器获取对应的
access_token。由于这部分代码官方有demo,所以直接用官方的sample例子做演示。
下载官方示例代码后,根据自己的情况选择对应的后台语言(这里以
PHP为例)。
分享信息配置失败的调试方法
有时候设置好之后发现分享出去只有标题和一张和设置不一样的图片,摘要变成了页面链接。这就说明配置失败了。对于没有正确配置的页面,微信默认抓取网页标题和页面内第一张分辨率大于300*300的图片做分享图,而摘要则是替换成页面链接——这种情况从用户的角度看来并不友好。所幸对于配置失败的页面,微信也给了调试接口,官方也有部分说明。
打开
wx.config里的
debug
将
debug设置为
true之后,手机进入页面,会弹出错误信息(PC不管有没有配置正确都会在开发者工具中打印出对应的分享信息,参考意义不是很大——不过可以拿来查看链接是否有误)。
如果正确的话,会提示
{"errMsg":"config:ok"}。
提示{"errMsg":"config:invalid url domain"}
这个最常见,主要是域名没有被添加为js接口安全域名。官方的说明里是要域名和使用的
APPID对应的公共号绑定,不过我实际使用中发现应该也可以分离。另外如果使用了端口号,则配置的绑定域名也要加上端口号(一个appid可以绑定三个有效域名)
提示{"errMsg":"config:invalid signature"}
造成这个情况的可能性比较多。不过主要有以下三个原因:APPID和
APPSECRET填错了。
可以到官方的调试页面获取access_token看看是否是正确的
超过了每日的access_token获取上限
官方限定每日2k次请求。所以如果没有缓存access_token的话,还是比较容易过限的。
微信公共号状态不正常。
比如验证过期了,被封禁了等等。
常用的接口调试链接以及说明文档:
获取access_tokenhttps://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E5%9F%BA%E7%A1%80%E6%94%AF%E6%8C%81&form=%E8%8E%B7%E5%8F%96access_token%E6%8E%A5%E5%8F%A3%20/token
根据返回的结果可以判断页面内的
APPID和
APPSECRET有没有出错
获取jsapi_ticket
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
利用前面拿到的access_token 采用http GET方式请求获得jsapi_ticket,如果出错的话会返回对应的说明。
全局返回码说明
http://mp.weixin.qq.com/wiki/17/fa4e1434e57290788bde25603fa2fcbd.html
接口频率限制说明
http://mp.weixin.qq.com/wiki/0/2e2239fa5f49388d5b5136ecc8e0e440.html
来自:http://chitanda.me/2015/06/19/wechat-share-diy/
相关文章推荐
- SAE+Servlet+JSP实现微信公众平台OAuth2.0网页授权的使用
- Android之微信支付功能
- 36选7小程序
- 腻人的微信营销
- 手把手教你微信支付
- 微信企业号开发八:JSAPI模式之身份验证接口
- Android ActionBar应用实战,高仿微信主界面的设计
- 微信企业号开发七:JSAPI模式
- android集成支付,支付宝,微信
- 微信企业号开发六:回调模式之消息回复
- 微信移动支付V3开发详细教程服务端采用.net mvc webapi(C#)
- 防微信底部标题栏
- 透彻分析微信公众平台三大矛盾
- 玩转AWS CloudWatch微信告警
- 玩转AWS CloudWatch微信告警
- 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
- 微信企业号开发五:回调模式
- Android 微信抢红包插件
- 微信企业号开发四:文件上传到微信服务器
- 微信企业号开发三:主动调用模式之发送news消息