微信公众平台技术文档笔记
不定时更新。
基本知识
每个用户针对每个公众号会产生一个安全的 OpenID,一个用户对多个公众号有多个不同的 OpenID,但是每个用户有唯一的 UnionID 。
公众号消息会话
- 群发消息,订阅号 1/天,服务号 4/月,向用户群发消息,包括文字消息、图文消息、图片、视频、语音等
- 被动回复消息,用户向公众号发消息后,公众号需要在 5 秒内回复,可以回复一个消息,也可以回复 “success” 或者 ““,被动回复还可以设置加密。
- 客服消息,在用户给公众号发消息后的 48 小时内,公众号可以给用户发送 不限 数量的消息
- 模板消息,在需要对用户发送服务通知时,公众号可以用特定内容模板,主动向用户发送信息
公众号内网页
- 网页授权获取用户基本信息(获取 OpenID 无需用户同意,获取用户基本信息则需要用户同意)
- 微信 JS-SDK
以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。
权限说明
微信认证分为资质认证和名称认证两部分,只需要资质认证通过,就可获得接口。
具体分为:未认证订阅号、微信认证订阅号、未认证服务号、微信认证服务号
接口名称 | 未认证订阅号 | 认证订阅号 | 未认证服务号 | 认证服务号 |
---|---|---|---|---|
发送消息-被动回复消息 | 有 | 有 | 有 | 有 |
发送消息-客服接口 | 有 | 有 | ||
发送消息-群发接口 | 有 | 有 | ||
发送消息-模板消息接口(发送业务通知) | 有 | |||
发送消息-一次性订阅消息接口 | 有 | 有 |
自定义菜单
认证订阅号以上级别才有权限
- 最多 3 个一级菜单,每个一级菜单最多包含 5 个二级菜单
- 一级菜单最多 4 个汉字,二级菜单最多 7 个汉字,多出的会被“…”代替
- 如果上一次拉取菜单是 5 分钟以前,就会拉去一下菜单。
可以实现多种类型按钮,如下:
- click
- view
- scancode_push
- scancode_waitmsg
- pic_sysphoto
- pic_photo_or_album
- pic_weixin
- location_select
- media_id
- view_limited
消息管理
群发接口和原创校验
为订阅号提供了每天一条的群发权限,为服务号提供了每月4条群发权限。
- 认证订阅号,群发接口每天可成功调用 1 次,此群发可以选择发送给全部用户或者某个标签
- 认证服务号开发者每日调用限制为 100 次,但用户每月只能接受 4 次,无论在公众平台上还是使用接口群发,用户每月只能接受 4 条群发消息,多于 4 条的群发对该用户发送失败
- 开发者可以使用预览接口对消息进行预览
- 群发微信会自动进行读文消息原创性校验
- 未完待续…