7.2.5 案例:原样回复QQ表情

下面我们使用isQqFace()方法实现一个简单的功能:用户发送什么QQ表情给公众账号,公众账号就回复什么QQ表情给用户。关键实现代码如下:

  1. 1 // 文本消息
  2. 2 if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
  3. 3  // 文本消息内容
  4. 4  String content = requestMap.get("Content");
  5. 5 
  6. 6  // 判断是不是单个QQ表情
  7. 7  if(isQqFace(content)) {
  8. 8  // 创建文本消息
  9. 9  TextMessage textMessage = new TextMessage();
  10. 10  textMessage.setToUserName(fromUserName);
  11. 11  textMessage.setFromUserName(toUserName);
  12. 12  textMessage.setCreateTime(new Date().getTime());
  13. 13  textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
  14. 14  // 用户发什么QQ表情,就回复什么QQ表情
  15. 15  textMessage.setContent(content);
  16. 16
  17. 17  // 将文本消息对象转换成XML字符串
  18. 18  respXml = MessageUtil.messageToXml(textMessage);
  19. 19  }
  20. 20  else {
  21. 21  // TODO 其他业务逻辑
  22. 22  }
  23. 23 }
  24. 24 else {
  25. 25  // TODO 其他业务逻辑
  26. 26 }

第1~4行代码的作用是判断请求消息类型为text时,取出消息内容content。第7行代码调用isQqFace()方法判断content是否为单个QQ表情。第9~15行构建了一个文本消息对象,并将该消息的内容设置为content(即用户发什么QQ表情,就回复什么QQ表情给用户)。第18行代码将文本消息对象转换成XML字符,最终返回给用户。