微信小程序 templateMessage.send推送消息 formId问题

本文详细介绍了微信小程序推送消息的实现方法,包括如何获取并使用formId,以及推送消息的基本参数如用户openId、消息模板id等。文章还提到了在实际应用中遇到的一些问题,如formId的有效性检测。

微信小程序推送消息,基本参数为接受用户openId, 消息模板id, formId表单提交id。

对于formId来讲,微信小程序只允许用户有提交表单后,才可以对用户推送消息。

表单属性通过report-submit=true设置,将会返回表单的id,微信文档上说要保存该id,方便后续推送操作使用。

但是需要注意,此时返回的formId还不能立即使用(辣鸡,开发者工具也辣鸡,?吐槽好爽),也就是说不能再catchSubmit的事件里使用该formId作为推送参数formId(可以通过report-submit-timeout参数来检测formId是否有效,说是网络不好情况下会无效,但是发现很多情况下都返回requestFormId:fail timeout无效没法使用). 所以此时如果要推送消息只能使用以前保存的formId并且每个formId只能用一次.

 

cloud.openapi.templateMessage.send({
    touser: toOpenId[0],
    templateId: template,
    formId: formId, //以前提交过表单的formId,不能直接使用catchSubmit中返回的那个
    page: 'pages/detail/detail?id=' + event.blogId,
    data: {
      keyword1: {
        value: event.nickName
      },
      keyword2: {
        value: event.message
      },
      keyword3: {
        value: new Date().toFormat("YYYY-MM-DD HH24:MI:SS")
      }
    },
  })

 

### 微信小程序消息订阅的推送次数限制及可行性分析 微信小程序消息订阅功能是基于模板消息的一种改进机制,允许用户主动订阅特定类型的消息通知。以下是对微信小程序消息订阅推送次数限制以及多次推送可行性的详细分析。 #### 1. 消息订阅推送次数限制 根据官方文档[^4],微信小程序消息订阅功能对推送次数有一定的限制: - **一次性订阅**:仅限于当日推送一次,且用户需手动触发订阅行为。 - **长期订阅**:支持多次推送,但需要用户明确授权长期订阅权限,且订阅的有效期为一年。 此外,开发者需要注意的是,即使用户已订阅消息,也不能滥用推送功能,否则可能导致用户取消订阅或被平台处罚。 #### 2. 多次推送的可行性 为了实现多次推送,开发者可以采取以下策略: - **利用长期订阅权限**:如果用户选择了长期订阅,则可以在有效期内多次推送消息,但需确保推送内容与用户订阅的主题一致,并遵守微信平台的相关规定。 - **分批次获取多个 formId**:通过页面设计技巧(如叠加多个表单[^5]),在一次用户交互中获取多个 `formId`,从而实现多次推送模板消息。不过,这种方法适用于模板消息而非消息订阅。 - **优化用户体验**:在推送消息时,尽量减少不必要的打扰,提供有价值的内容,以提高用户的接受度和留存率。 #### 3. 注意事项 - 开发者应严格遵守微信平台的推送规则,避免因违规操作导致账号受限或封禁。 - 在设计推送内容时,需考虑用户隐私保护,确保信息的安全性和合法性。 ```python # 示例代码:模拟消息推送逻辑 def send_message(user_id, message_content): if user_has_long_term_subscription(user_id): # 判断用户是否长期订阅 for _ in range(allowed_push_times): # 根据规则限制推送次数 push_message(user_id, message_content) else: push_message(user_id, message_content) # 一次性订阅仅推送一次 def user_has_long_term_subscription(user_id): # 查询数据库判断用户是否有长期订阅权限 return True def allowed_push_times(): # 根据业务逻辑返回允许的最大推送次数 return 5 def push_message(user_id, message_content): print(f"Pushing message to {user_id}: {message_content}") ``` ### 结论 微信小程序消息订阅功能支持多次推送,但需满足特定条件,例如用户授权长期订阅权限。同时,开发者应合理规划推送策略,避免过度打扰用户。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值