使用配置文件配置微信自动回复内容信息

在微信开发的自动回复消息中,我们无法将我们所能够想到的自动回复内容全部罗列在Java代码中,因此,我们需要使用配置文件来配置我们自动回复的内容,当我们需要添加或者修改自动回复的内容时,只需要在配置文件中进行改动,则可以实现对自动回复内容的修改。


既然提到了在配置文件中配置,我们首先想到的就是xml文件,以下是自动回复的配置文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<weixin>	
	<!-- 默认回复 -->
	<defaultReply value="我看不懂您在说些什么。" />
	<!-- 自动回复 -->
	<autoReplys>
		<autoReply autoKey="签到" reply="您好,您的签到信息已经成功记录。" />
		<autoReply autoKey="笑话" reply="系统为您讲了一个有趣的笑话。" />
		<autoReply autoKey="难过" reply="究竟是什么让你难过?" />
		<autoReply autoKey="我爱你" reply="我也爱你。" />
		<autoReply autoKey="再见" reply="goodbye" />
	
	</autoReplys>
</weixin>

配置好如上文件以后,我们就可以去编辑自动回复部分的代码了。

思路如下:

1.通过dom4j解析xml文件,获取根节点,获取相应的回复节点。

2.获取defaultReply内容,并保存在静态变量中。

3.循环获取autoReply内容,保存在List<Map<String,String>>中。

    注意:这里的List集合是指定的map泛型,元素map里面的key跟别为为autoKey和reply,value为对应的关键字和所应该回复的内容。

4.获取到用户输入以后,遍历List,查找用户发送的信息content是否包含在map中的key中,如果是,则获取项对应的value,返回给用户。


关键代码送上:

        Element defaultReplyEle = rootEle.element("defaultReply");
	defaultReply = defaultReplyEle.attributeValue("value");
		
	// 获取自动回复内容
	Element autoReplyListEle = rootEle.element("autoReplys");
	Iterator autoReplyIterator = autoReplyListEle.elementIterator();
	while (autoReplyIterator.hasNext()) {
		Element autoReplyElement = (Element) autoReplyIterator.next();
		String autoKey = autoReplyElement.attributeValue("autoKey");
		String reply = autoReplyElement.attributeValue("reply");
		Map<String,String> obj = new HashMap<String,String>();
		obj.put("autoKey", autoKey);
		obj.put("reply", reply);
		autoReplyList.add(obj);
	}

        /**
	 * 根据参数返回相应的回复信息
	 * @param content
	 * @return
	 * @throws Exception
	 */
	private String calcBackStr(String content) throws Exception{	
		String backStr = NameResourceProperties.getDefaultReply();
		if(super.noValue(content)){
			return backStr;
		}
		List<Map<String,String>> autoReplyList = NameResourceProperties.getAutoReplyList();
		for(Map<String,String> obj : autoReplyList){
			if(content.indexOf(obj.getString("autoKey"))>=0){
				backStr = obj.getString("reply");
				break;
			}
		}
		return backStr;
	}

这样我们就实现了配置文件写入自动回复内容,并读取配置文件获取自动回复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值