基础库版本:2.17.0
我的目的是定期给用户发送节日提醒
实现方式是在云函数中利用定时触发器,去调用小程序SDK中的subscribeMessage.send函数
用户订阅是在小程序端由用户发起,用户订阅成功后,在云数据库用户信息collection中进行标记。
云函数处理逻辑如下:
1、每天运行一次。判断是否需要做节日提醒。如果不需要,则返回。
2、如果需要做节日提醒,则遍历所有订阅成功的用户,按照openid逐个发送订阅消息。发送的方式是调用另外一个云函数,
该云函数则是调用subscribeMessage.send函数。
逻辑比较简单。最开始的时候,会出现云函数调用失败,但是订阅消息能够发出出去一部分。截图如下:
后来,在每次调用发送订阅消息的云函数中,每次调用后,加了一个延时,隔4s后再调用,则每次都能够调用成功。但是会出现43101错误码,提示信息如下:
这个现象就非常奇怪了,明明云函数调用失败,却可以发出去订阅消息,用户能收到。而云函数调用成功,却提示用户拒绝订阅消息。
用户可以收到订阅消息,说明用户已经订阅成功,可以收到消息。但是在云函数调用成功的前提下,为什么用户却收不到订阅消息呢?
云函数调用失败,会抛出异常,所以只会给部分用户发送出去订阅消息,而不是所有用户。要不也就不去管这个问题了。
哪位大神可以帮助解答下?这个是个什么逻辑?
1、理论上,订阅消息不支持这种需求;第一天可能发送成功,以后也会因为用户没有订阅次数了而发送失败;一次性订阅消息:用户“订阅”按钮n次,才能发送n次消息;
想在10天里每天生日提醒,那这个用户必然要在小程序里逛点10次以上。