微信关键字自动回复功能实现

具体实现过程请加入QQ群进行讨论获取





一、微信API解读

微信自动回复可以分为三种,一种是首次关注的欢迎语,一种是关键字自动回复,还有就是无法识别的回复。这三种模式在实现上是完全一样的,只是基于的事件不同而已。要想实现自动回复功能,首先要对微信相关API进行解读。
微信的消息类型主要分为请求消息类型以及事件消息类型。
首次关注对应的是事件类型中的 订阅类型(subscribe),关键字自动回复以及无法识别回复对应的是请求消息类型中的 文本消息(text).为了以后方便,我们创建一个MessageUntil.java,将所有的请求消息类型和事件消息类型整合,
对应的文件代码如下:
   
/**
* @ClassName MessageUtil
* @Description 消息处理工具类
* @author minlingchao
* @date 2015-2-6 下午12:41:31
*/
public class MessageUtil {
 
// /请求消息类型/
// /事件消息类型/
 
/**
* 请求消息类型:事件推送
*/
public static final String REQ_MSG_TYPE_EVENT = "event";
 
/**
* 事件类型:订阅/关注
*/
public static final String EVENT_TYPE_SUBSCRIBE = "subscribe";
 
/**
* 事件类型:取消订阅/取消关注
*/
public static final String EVENT_TYPE_UNSUBSCRIBE = "unsubscribe";
 
/**
* 事件类型:扫描二维码
*/
public static final String EVENT_TYPE_SCAN = "scan";
 
/**
* 事件类型:上报地理位置
*/
public static final String EVENT_TYPE_LOCATION = "LOCATION";
 
/**
* 事件类型:自定义菜单(CLICK)
*/
public static final String EVENT_TYPE_CLICK = "CLICK";
 
// /响应消息类型/
 
/**
* 文本消息
*/
public static final String RESP_MESSAGE_TYPE_TEXT = "text";
 
/**
* 图片消息
*/
public static final String RESP_MESSAGE_TYPE_IMAGE = "image";
 
/**
* 语音消息
*/
public static final String RESP_MESSAGE_TYPE_VOICE = "voice";
 
/**
* 视频消息
*/
public static final String RESP_MESSAGE_TYPE_VIDEO = "video";
 
/**
* 图文消息
*/
public static final String RESP_MESSAGE_TYPE_NEWS = "news";
 
 
}
可以看到我们回复的消息可以是文本消息,图文消息,视频消息,语音消息,图片消息,当然文本、图片消息的实现较为简单,至于其他几种消息类型的回复会在稍后的章节中逐一讲解。
二、设计思路
由于自动回复是微信中最为重要的功能之一,其他的一些营销活动以及互动游戏等都是基于自动回复消息来实现的,所以自动回复在微信中的地位是十分重要的。我们需要将其作为一个独立的模块,可以为后续的扩展做好铺垫,以便实现更多的互动功能。所以自动回复这一块的设计尤为重要,为了将其独立起来,设计框架如下所示:


从上图可以看出,由于文本消息、图片消息、视频消息以及语音消息的结构组成是十分相似的,所有通过一个ReplyMsgTempelete映射到响应的消息类型中,图文消息的结构组成比较特殊,所以对于图文消息要单独进行处理,首次关注、关键字回复以及不识别回复通过两个消息模板映射的不同的消息中去,这样就保证了底层的消息内容可以独立开,为以后扩展更多的功能做好铺垫。
三、功能实现

四、注意事项

五、总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/62902.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现微信自动回复信息的功能(根据不同信息回复对应的信息),手把手搭建加代码分析

目录 一.效果展示 二.前言介绍 三.进入正题 1.需要用到的包 2.下面进入到代码的部分 2.1导入所需要用到的包 2.2定义微信窗口控件 2.3调用寻找微信控件的方法 2.3绑定窗口的会话列表控件并读取数据 2.4使用while True:死循环监听信息 2.5获取最新的信息 2.6进入循…

微信开发之自动回复图文消息

最近开始做公司的微信项目,深切的感受到了微信的不同,做微信是需要从头开始好好学的,在此记录一下学习微信的过程,也希望以后能根据这些文章迅速掌握微信开发的知识。少踩坑,,(laravel框架&…

微信公众号开发—自定义菜单、被动回复消息

自定义菜单 自定义菜单需要我们以POST的方式去请求接口,并且需要携带按钮信息(格式为json)。 由于自定义菜单较为简单,这里使用微信官方提供的接口测试工具对按钮增加接口进行测试: 通过appid和secret获取access_token。生成按钮数据(JSON)…

msg文件自定义消息话题

以LVI-SAM为例,cloud_info.msg就是LVI-SAM自定义的消息类型;通常,都是利用msg文件,生成.h文件,然后cpp文件添加.h就可以正常使用自定义消息了; 自定义msg消息步骤 Step1:创建并编写msg文件&am…

微信公众号自定义回复(关键词回复:文本消息、图文消息)

要回复客户发到微信公共号的消息,首先要获取用户发来的消息, 接收地址就是微信公众号基本配置里写的服务器地址所在的文件地址; $postStr $GLOBALS["HTTP_RAW_POST_DATA"]; //微信返回的信息。包含用户所发的消息 $postObj si…

微信开发 (自动回复图片,自定义菜单)

微信是一个高大上的东西,恩,没错 首先输入网址mp.weixin.qq.com进入微信公众平台 注册账号和密码(注意的是这里的账号和密码不是微信的账号密码) 进入之后点击左侧开发/开发者工具 在右侧点击进入公众平台测试账号&#xff08…

大众CEO提前“毕业”,马斯克:软件是通向未来的关键

过去,软件是汽车的一部分,而如今,软件决定了汽车的价值。 近日,知名传统汽车厂商大众CEO赫伯特迪斯 (Herbert Diess) 提前卸任新闻引发人们热议,其好友特斯拉CEO马斯克发推表示:“软件是通向未来的关键。”…

“AI 不会取代程序员,而是其增长的加速器!”

ChatGPT 热潮下,关于 AI 是否会取代程序员的讨论不绝于耳,而本文作者认为:AI 反而会推动更多开发者的出现。 原文链接:https://interconnect.substack.com/p/ai-will-create-more-developers-not 未经允许,禁止转载&am…

谷歌终于也坐不住了 。。。

来源于51CTO技术栈 整理 | 言征 刚过去的一周,我们刚经历了三场对话式AI的大事:OpenAI的GPT-4,微软Office 365“核弹式”升级,百度的中文语言大模型“文心一言”,谷歌终于坐不住了,21日,谷歌首席…

我对 ChatGPT 进行多方位了解后的报告,超级全面,建议想了解的朋友看看(截至 2023.5.17)

优质介绍视频: GPT4前端【AI编程新纪元】 【渐构】万字科普GPT4为何会颠覆现有工作流;为何你要关注微软Copilot、文心一言等大模型 此文章不定期更新(一周应该会更新一次) 最近一次更新:2023.5.17 23:00(…

获取钉钉企业部门用户信息

获取钉钉企业用户信息 有一个需求,需要获取本公司钉钉里面所有部门的员工信息,查阅钉钉官方文档后整理出了以下步骤: 1.登录钉钉企业管理员账号,创建一个应用 因为是公司内部使用区别第三方,所以选择企业内部开发 点击创建应用,填写基本信息 服务器IP写公网IP(可直接百度本机…

企业数字化转型|钉钉小程序开发权威指南

书籍发布:《钉钉小程序开发权威指南》书籍正式预售 钉钉技术团队聚力撰写,本书细致全面地介绍钉钉小程序技术原理及开发要点, 详细介绍从成为一名钉钉开发者到小程序应用上架的每一步流程。助力企业实现组织数字化和业务数字化。 购买渠道 …

钉钉E应用架构详解

E应用框架详解: App:指的是E应用。 Page:页面,一个app有多个page。 App的生命周期: 当用户点击应用,进去onLaunch(启动应用)->onShow,当用户点返回按钮时,不会销毁当前页面(保活状态)&…

Python结合钉钉实时自动监控股票行情,上班炒股再也不怕老板发现

最近全球股市开始回暖,之前清仓的股民现在又陆续开始建仓。股市交易时间,一般也是上班时间,频繁的查看股票软件不仅会影响工作效率,也容易被老板以为工作不饱和。所以,我们就借助python的强大功能,把提前设…

【钉钉-场景化能力包】应用内发DING消息

客户痛点 面对不同类型的中小型企业,人员较多,找人非常困难,管理子公司的时候,协调的问题就更多,企业使用常规的个人聊天软件,消息发送后,不能准确判断消息是否已读,导致沟通管理效…

DingTalk「开发者说」如何开发钉钉高价值应用三部曲

一、钉钉是什么? 钉钉是企业应用数字化的操作系统 简单来说,钉钉是企业应用数字化的操作系统,就如同PC上的windows操作系统一样,我们可以在上面安装各种应用比如office、WPS,用于企业的各种实际应用。 钉钉自带原生…

数据分析:扩展企业微信、钉钉、飞书等告警通知渠道

本章节主要讲述如何扩展告警的通知渠道,以便将告警发送到第三方应用中 企业微信 实现目标 ●在鸿鹄中创建的告警被触发后,将告警通知发送至指定的企业微信群聊 配置步骤 1、打开“企业微信”,点击告警群右上角的“...”按钮 2、点击“群机器人…

Meta 开源 ImageBind 新模型,超越 GPT-4,对齐文本、音频等 6 种模态!

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 据外媒报道,上周四,Google、微软、OpenAI 几家公司的 CEO 受邀去白宫,共论关于人工智能发展的一些重要问题。然而,让人有些想不通的是,深耕 A…

刷屏的Llama 2性能究竟如何?

Datawhale干货 大模型:Llama 2, 来源:机器之心 虽然性能仍不及ChatGPT 3.5,但开源的力量是无法估量的。 相信很多人都被 Meta 发布的 Llama 2 刷了屏。OpenAI 研究科学家 Andrej Karpathy 在推特上表示,「对于人工智能…

ESP8266用点灯app接入小爱同学

ESP8266接入小爱同学—智能LED台灯或风扇 首先用的是arduino IDE对esp8266进行的编译,arduino对8266编译环境的具体配置可参考 1.利用WiFiManager库实现自动配网,亦能够满足在不同WiFi下可以不用更改程序即可链接不同的WiFi 2.利用esp8266 OTA功能实现应…