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

一、微信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映射到响应的消息类型中,图文消息的结构组成比较特殊,所以对于图文消息要单独进行处理,首次关注、关键字回复以及不识别回复通过两个消息模板映射的不同的消息中去,这样就保证了底层的消息内容可以独立开,为以后扩展更多的功能做好铺垫。

三、功能实现

四、注意事项

五、总结

时间: 2024-10-27 19:36:14

微信关键字自动回复功能实现的相关文章

微信公众平台开发者模式自动回复功能与自定义菜单

微信开发者模式自动回复功能 1.提取POST来的数据中的信息 2.判断微信客户端发来的信息内容(以文本信息为例) 3.根据信息内容进行处理 4.把处理结果以XML的形式返回给微信服务器 5.微信服务器反馈内容给微信客户端 1.获取用户发来的文本信息的内容 private void ExtractPostData() /*** 提取POST来的数据中的信息 ***/ { Stream s = HttpContext.Current.Request.InputStream; //读取post来的数据

Android微信自动回复功能

Android微信自动回复功能 本文原创,转载请经过本人准许. 写在前面: 最近接到老大的一个需求,要求在手机端拦截微信的通知(Notification),从而获得联系人和内容.之后将联系人和内容发送到我们的硬件产品上,展示出来之后,再将我们想回复内容传给微信,并且发送给相应联系人. 老大还提示我需要用AccessibilityService去实现它,当然在此之前我并不知道AccessibilityService是什么鬼,不过没关系, just do IT ! AccessibilityServ

微信的分享功能(针对web手机站页面进行的分享功能)

把这段js粘贴进,设置可以分享的页面,当微信打开,即可微信进行分享各个圈 $(function(){ var lujing=$("#logimg").attr("src");  //分享中带有的图片 var url=window.location.href;         //分享页的地址 var title=document.title;             //分享内容的标题 weixin("http://m.e-iot.com/images/b

andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能

前言:自己在学习的过程中的一些操作过程,对分享的一些理解.下面就讲解一下: 下载地址:http://download.csdn.net/detail/u014608640/7490357 首先,我们需要去ShareSdk官方网站http://sharesdk.cn/ 去下载ShareSDK ,然后我们会有4个文件: 根据我自己在学习的过程中只用到了第一个文件夹的 libs目录的2个项目,这2个是必须要的,是ShareSdk提供的,然后需要将这2个放入到自己做的项目当中去,在Res目录下有一个 S

微信公众平台功能开发(生成带参数的二维码)

为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送. 目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000).两种二维码分别适用于帐号绑定.用户来源统计等场景. 用户扫描带场景值二维码时,可能推送以下两种事件: 如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事

微名汇-微信公众平台功能开发(天气查询)

在这篇教程中,我们将介绍如何在微信公众平台上开发天气预报功能.我们将使用中国天气网的气象数据接口来获取天气信息 这篇教程将介绍以下内容: 获取中国天气网的气象数据 在微信公众平台中回复天气 微名汇:http://weixin.zgtuango.com 联系QQ:44653139 一.中国天气网 中国天气网提供了丰富的气象数据接口.下面我们介绍主要的几个: 国家根节点接口: http://flash.weather.com.cn/wmaps/xml/china.xml 该接口以XML格式列出所有的

asp.net C# 微信消息自动回复 asp.net版

//asp.net C# 微信消息自动回复 asp.net版 protected void Page_Load(object sender, EventArgs e) { if (Request.HttpMethod == "POST") { string weixin = ""; weixin = PostInput();//获取xml数据 if (!string.IsNullOrEmpty(weixin)) { ResponseMsg(weixin);////调

微信开发(1)---微信防撤回功能实现

手里负责的项目都是微信端开发,微信小程序,以及公众号相关,所以最近在看微信开发的书. 今天碰巧看到一篇知乎讲如何实现微信防撤回功能,所以自己去实现了下,颇为好玩. 微信防撤回功能轻松实现~ 先贴上知乎原帖: https://zhuanlan.zhihu.com/p/25689314?utm_source=zhihu&utm_medium=social 实现思路,将接收到的消息都存进一个字典(msg_dict),接收到撤回通知时,提取撤回消息的id,从字典中进行比对,然后发送.保存.那么字典能放得

微信公众平台功能开发(微信小店接口)

微信公众平台本次更新增加了微信小店功能,微信小店基于微信支付,包括添加商品.商品管理.订单管理.货架管理.维权等功能.不过此功能只能服务号才有,支付方式有微信支付和支付宝支付,唯一缺点就是所有的模块全部是一样的,容易产生视觉疲劳,上下架商品不是很方便,不过听适合想在微信开店的朋友们. 微名汇:http://weixin.zgtuango.com 联系QQ:44653139 开发者可以通过小店接口来实现快速开店,目前支持以下接口: 1.商品管理接口 开发者可通过商品管理接口,来增加商品.删除商品.