# 公众号/小程序推送
# 1.查询微信粉丝数目和接口调用次数
可以在【微信公众平台(https://mp.weixin.qq.com/ (opens new window))】中的【管理】-【用户管理】里查询粉丝数目,在【开发】-【接口权限】里查询每日接口调用次数限制
# 2.如何拿到公众号的 OPENID 及 UNIONID
# 1.首先将公众号-小程序全部绑定在同一个开放平台下
微信开放平台地址:open.weixin.qq.com
# 2.获取 A 公众号的所有粉丝的 OPENID 存入数据库表中(每日 500 次,一次一万)【无后台的公众号,如果之前有存对应信息可以不用此步骤】
【问题】如果公众号以后不使用后台存储用户信息,以后不是要每天都去调接口去获取用户列表?
当公众号关注者数量超过 10000 时,可通过填写 next_openid 的值,从而多次拉取列表的方式来满足需求。
# 3.根据OPENID获取对应的UNIONID更新数据库表(每日500000次)
可以单个获取,可以批量:最多支持一次拉取 100 条。
可以根据 OPENID 拿到用户是否关注公众号,以及绑定了开放平台可以拿到 unionid 字段
# 4.另一个公众号即可根据UNIONID查询数据库表拿到另一个公众号的OPENID
# 5.小程序 UnionID 获取途径:
绑定了开发者帐号的小程序,可以通过以下途径获取 UnionID。
- 调用接口wx.getUserInfo (opens new window),从解密数据中获取 UnionID。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。
- 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。开发者可以直接通过wx.login (opens new window)+
code2Session
获取到该用户 UnionID,无须用户再次授权。 - 如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过wx.login (opens new window)+
code2Session
获取到该用户 UnionID,无须用户再次授权。 - 用户在小程序(暂不支持小游戏)中支付完成后,开发者可以直接通过
getPaidUnionId
接口获取该用户的 UnionID,无需用户授权。注意:本接口仅在用户支付完成后的 5 分钟内有效,请开发者妥善处理。 - 小程序端调用云函数 (opens new window)时,如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号,可在云函数中通过cloud.getWXContext (opens new window)获取 UnionID。
- 小程序端调用云函数 (opens new window)时,如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用,也可在云函数中通过cloud.getWXContext (opens new window)获取 UnionID
# 3.公众号推送模板消息
需要模板 ID,接收人 OPENID
# 4.小程序推送订阅消息
# 步骤一:获取模板 ID
在微信公众平台手动配置获取模板 ID:
登录https://mp.weixin.qq.com (opens new window)获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。
# 步骤二:获取下发权限
# 步骤三:调用接口下发订阅消息
详见服务端消息发送接口subscribeMessage.send (opens new window)
# 注意事项
- 用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。
# 5.小程序统一公共消息(使用小程序给公众号发送消息)可以不用拿到公众号的 OPENID,要求与小程序有绑定且同主体
调用这个接口的前提是公众号和小程序有绑定且是同主体的
登录公众号后台 -> 小程序 -> 小程序管理 -> 添加即可绑定小程序
因为实质上还是发的公众号模板消息,所以还是要在公众号后台添加消息模板获取模板 id
这个接口可以发送公众号或者小程序的消息。之前大家都知道,我们用小程序发送消息,有小程序的 api 接口,如果是发送公众号的消息,就有公众号的模板消息接口。
access_token 小程序的 access_token 这个一定要用小程序的 accesstoken,不能使用公众号的,因为这个接口的初衷就是想大家在开发小程序的时候,如果要发送公众号消息直接使用这个接口就可以了,无需再去调用公众号的模板消息接口。
touser 用户 openid,可以是小程序的 openid,也可以是 mp_template_msg.appid 对应的公众号的 openid
这个使用公众号的 openid 或者小程序的 openid 都可以的微信官方会自动关联。其实大家的使用场景大部分还是在小程序,所以这里你就直接用小程序里抓到的 openid 就可以了。
mp_template_msg.appid 公众号 appid,要求与小程序有绑定且同主体 这个大家要仔细读官方的说明哦,就是这公众号和小程序要相互关联了,且必须是同主体才行。不然也会调试不通过的。