微信主动发送消息

1. 背景

接到需求,产品希望实现微信公众号定时发送消息给不同客户

2. 思路

微信定时发送消息,首先想到的是手动群发,但是一来是手动的,二来有限制,模板消息群发限制也不少,最后决定用客服消息,定时框架用Quartz。ps:客服消息只能发送给48小时内的活跃用户(有互动的用户),所以还是选用模板消息了。
需求中有说明对于不同分组的用户其获得消息的时间是不同的,这样一来只写一个调度器
用到的接口

  1. 创建标签
    http请求方式:POST(请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN
    POST数据格式:JSON POST数据示例:
{   "tag" : {     "name" : "广东"//标签名   } } 
  1. 获取公众号已创建的标签
    http请求方式:GET(请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/get?access_token=ACCESS_TOKEN
    返回值中包含所有标签的信息,我们需要使用的是其中的id信息和name信息
  2. 获取标签下粉丝列表
    http请求方式:POST(请使用 https 协议) https://api.weixin.qq.com/cgi-bin/user/tag/get?access_token=ACCESS_TOKEN
    POST数据格式:JSON POST数据例子:
{   "tagid" : 134,   "next_openid":""//第一个拉取的OPENID,不填默认从头开始拉取 }
  1. 模板消息接口
    首先自己去开通模板消息功能(必须是服务号)
    模板消息接口申请及模板创建
    通过接口调用的方式来获取帐号下所有模板信息,具体如下:
    接口调用请求说明
    http请求方式:GET https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=ACCESS_TOKEN
    正确调用后的返回示例:
{	
     "template_list": [{
      "template_id": "iPk5sOIt5X_flOVKn5GrTFpncEYTojx6ddbt8WYoV5s",
      "title": "领取奖金提醒",
      "primary_industry": "IT科技",
      "deputy_industry": "互联网|电子商务",
      "content": "{ {result.DATA} }\n\n领奖金额:{ {withdrawMoney.DATA} }\n领奖  时间:    { {withdrawTime.DATA} }\n银行信息:{ {cardInfo.DATA} }\n到账时间:  { {arrivedTime.DATA} }\n{ {remark.DATA} }",
      "example": "您已提交领奖申请\n\n领奖金额:xxxx元\n领奖时间:2013-10-10 12:22:22\n银行信息:xx银行(尾号xxxx)\n到账时间:预计xxxxxxx\n\n预计将于 xxxx 到达您的银行卡"
   }]
}

发送模板消息
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
POST数据说明
POST数据示例如下:

      {
           "touser":"OPENID",
           "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
           "url":"http://weixin.qq.com/download",  
           "miniprogram":{
             "appid":"xiaochengxuappid12345",
             "pagepath":"index?foo=bar"
           },
           "client_msg_id":"MSG_000001",
           "data":{
                   "first": {
                       "value":"恭喜你购买成功!",
                       "color":"#173177"
                   },
                   "keyword1":{
                       "value":"巧克力",
                       "color":"#173177"
                   },
                   "keyword2": {
                       "value":"39.8元",
                       "color":"#173177"
                   },
                   "keyword3": {
                       "value":"2014年9月22日",
                       "color":"#173177"
                   },
                   "remark":{
                       "value":"欢迎再次购买!",
                       "color":"#173177"
                   }
           }
       }

参数说明

参数是否必填说明
touser接收者openid
template_id模板ID
url模板跳转链接(
miniprogram跳小程序所需数据,不需跳小程序可不用传该数据
appid所需跳转到的小程序appid(该小程序 appid 必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏)
pagepath所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),要求该小程序已发布,暂不支持小游戏
data模板数据
color模板内容字体颜色,不填默认为黑色
client_msg_id防重入id。对于同一个openid + client_msg_id, 只发送一条消息,10分钟有效,超过10分钟不保证效果。若无防重入需求,可不填

注:url和 miniprogram 都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。
返回码说明
在调用模板消息接口后,会返回 JSON 数据包。正常时的返回 JSON 数据包示例:

 {
    "errcode":0,
     "errmsg":"ok",
     "msgid":200228332
  }

3. 实现版本1.0

在初次实现中,选用Quartz框架来做定时任务,定时发送模板消息给所有关注用户
没有达到实现目标,实现目标是根据不同公司的自定义要求,在指定时间推送给该公司所有未点餐的用户,已点餐用户不会接受到。
首先,对于自定义时间的需求没有完成的原因是没有找到可以动态配置的定时任务设置方法,对于已点餐和未点餐用户的无法区分的原因在于自己的系统数据和微信的用户数据没有关联起来。且微信是不允许服务号主动获取用户的昵称等信息,只告诉你用户的编号。

基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值