评论

【已成功】只用云开发,如何发送公众号模板消息?

下发统一消息接口回收后,如果你只有云开发,没有服务器和域名,不妨尝试使用本文的方法来发送公众号模板消息。

下发统一消息接口回收后,如果你只有云开发,没有服务器和域名,不妨尝试使用本文的方法来发送公众号模板消息。

前提:

小程序和公众号同主体且已绑定到同一个微信开放平台账号。

思路推理:

小程序用户访问任意云函数都可以拿到小程序openid和unionid,提前将它们保存到云数据库用户集合中。

发送模板消息:

使用云函数A发送模板消息,需要调用公众号发送模板消息的接口,调用接口需要用到公众号的access_token。

获取和保存access_token:

使用云函数B获取access_token,推荐使用Stable Access token接口获取,减少出错率,云函数B可固定IP。因接口有日调用限制且access_token默认2小时过期,获取到access_token之后需要保存到云数据库中。为防止access_token过期,推荐云函数B设置定时触发,每隔1小时执行一次去重新获取access_token保存到云数据库中。

使用最新access_token

每次发模板消息时从云数据库查询最新的access_token记录,发送模板消息需要用到公众号的openid。

获取公众号openid:

将小程序的云环境共享给公众号,小程序可使用云函数C来获取公众号的openid和unionid。如何操作呢?

1、使用云开发静态网站制作一个授权页面D,在该页面中访问云函数C,使用静默授权方式访问在云函数C即可获取到访问用户的公众号openid和unionid。

2、小程序使用webview来访问页面D,授权成功后在页面显示公众号的二维码,提示用户关注公众号获取通知功能。

将小程序和公众号用户关联:

通过上述引导用户获取到的公众号unionid来查询云数据库中的用户信息,保存公众号的openid到用户信息中。

经历以上安排之后,小程序云数据库的用户集合中,用户信息已经包含了小程序openid、unionid、公众号openid,到发消息的时机就可以发了。

最后一次编辑于  2023-09-24  
点赞 6
收藏
评论

13 个评论

  • 红莲
    红莲
    2023-10-11

    请问这个接口授权在哪搞?我这就是小程序下发消息被收回,准备用绑定了的公众号发,可是公众号的权限我有啊

    2023-10-11
    赞同
    回复 4
  • 房小房
    房小房
    2023-10-11

    前辈您好,您的思路很有帮助,但是在实际操作中,页面D的代码, urlSearch.get('access_token')可以取到值,但是cloud.checkLogin(checkLoginOptions).loggedIn始终为false,始终找不出原因,望不吝赐教。

    2023-10-11
    赞同
    回复 9
    • Mos
      Mos
      2023-10-11
      我这边都是成功的不好调试你的问题,你把checkLogin返回的结果全部打印看看有没有错误信息呢。
      2023-10-11
      回复
    • Mos
      Mos
      2023-10-11
      注意jweixin.js和cloud.js不要用cdn资源,下下来放自己服务端后再引用。
      2023-10-11
      回复
    • 房小房
      房小房
      2023-10-11回复Mos
      checkLogin返回的结果如图,不知问题在哪里
      2023-10-11
      回复
    • 房小房
      房小房
      2023-10-12回复Mos
      引用自己服务器资源和引用cdn资源,都是返回false
      2023-10-12
      回复
    • Mos
      Mos
      2023-10-12回复房小房
      可以把网页链接发我调试看看
      2023-10-12
      回复
    查看更多(4)
  • 查冠友
    查冠友
    2023-09-24

    获取token时要设置IP白名单,每次IP地址都还不一样,这个有办法解决吗?


    2023-09-24
    赞同
    回复 3
    • 查冠友
      查冠友
      2023-09-24
      解决了,可以设置对外固定IP地址
      2023-09-24
      回复
    • IT界的吴彦祖
      IT界的吴彦祖
      2023-09-26回复查冠友
      大佬如何设置对外固定IP地址?
      2023-09-26
      回复
    • Mos
      Mos
      2023-10-12回复IT界的吴彦祖
      云开发控制台-云函数-版本与配置-配置-高级配置-固定公网IP。
      2023-10-12
      回复

正在加载...

登录 后发表内容