AWS企业微信管理开发平台参考指南

接收消息

由AWS PaaS本地应用中实现WechatProcessor接口的消息处理器接收并处理来自微信端推送的消息

  • text文本消息
  • image图片消息
  • voice语音消息
  • video视频消息
  • location位置消息

如何在您的应用中注册微信消息处理器,请移步这里

处理text文本消息

场景:成员在该应用里使用键盘发送了文本。比如问今天的订单

public class XXXProcessor implements WechatProcessor {

    public WechatOutMessage handleMessage(WechatInMessage msg) {
        if (msg.getMsgType().equals(WechatConsts.MSG_TYPE_TEXT)) {
            System.out.println("这是文本消息");
            System.out.println("内容是:" + msg.getContent());
        }
    }
}

处理image图片消息

场景:成员在该应用里使用键盘发送了图片,或者通过以下菜单事件发送了图片:

  • 系统拍照发图(pic_sysphoto)
  • 拍照或者相册发图(pic_photo_or_album)
  • 微信相册发图(pic_weixin)
public class XXXProcessor implements WechatProcessor {

    public WechatOutMessage handleMessage(WechatInMessage msg) {
        if (msg.getMsgType().equals(WechatConsts.MSG_TYPE_IMAGE)) {
            System.out.println("这是图片消息");
            System.out.println("图片链接:" + msg.getPicUrl());
            System.out.println("图片媒体文件id:" + msg.getMediaId());
        }
    }
}

处理voice语音消息

场景:成员在该应用里使用键盘发送了语音信息

public class XXXProcessor implements WechatProcessor {

    public WechatOutMessage handleMessage(WechatInMessage msg) {
        if (msg.getMsgType().equals(WechatConsts.MSG_TYPE_VOICE)) {
            System.out.println("这是语音消息");
            System.out.println("语音格式:" + msg.getFormat());
            System.out.println("语音媒体文件id:" + msg.getMediaId());
        }
    }
}

处理video视频消息

场景:成员在该应用里使用键盘发拍摄了视频,或者通过以下菜单事件发送了视频:

  • 系统拍照发视频(pic_sysphoto)
  • 拍照或者相册发视频(pic_photo_or_album)
  • 微信相册发视频(pic_weixin)
public class XXXProcessor implements WechatProcessor {

    public WechatOutMessage handleMessage(WechatInMessage msg) {
        if (msg.getMsgType().equals(WechatConsts.MSG_TYPE_VIDEO)) {
            System.out.println("这是视频消息");
            System.out.println("视频缩略图媒体id:" + msg.getThumbMediaId());
            System.out.println("视频媒体文件id:" + msg.getMediaId());
        }
    }
}

处理location位置消息

场景:成员在该应用里使用键盘发位置,或者通过以下菜单事件发送了位置信息:

  • 发送位置(location_select)
  • 当该应用开启自动上报位置,成员进入该应用后(EVENT_TYPE_LOCATION)
public class XXXProcessor implements WechatProcessor {

    public WechatOutMessage handleMessage(WechatInMessage msg) {
        if (msg.getMsgType().equals(WechatConsts.MSG_TYPE_LOCATION)) {
            System.out.println("这是用户选择的位置消息");
            System.out.println("地理位置纬度:" + msg.getLocationX());
            System.out.println("地理位置经度:" + msg.getLocationY());
            System.out.println("地图缩放大小:" + msg.getScale());
            System.out.println("地理位置信息:" + msg.getLabel());
        } else if (msg.getEvent().equals(WechatConsts.EVENT_TYPE_LOCATION)) {
            System.out.println("这是自动上报的位置消息");
            System.out.println("地理位置纬度:" + msg.getLatitude());
            System.out.println("地理位置经度:" + msg.getLongitude());
            System.out.println("地理位置精度:" + msg.getPrecision());
        }
    }
}

结果示例

这是用户选择的位置消息
地理位置纬度:40.043301
地理位置经度:116.30584
地图缩放大小:15.0
地理位置信息:北京市海淀区信息路7

这是自动上报的位置消息
地理位置纬度:40.041645
地理位置经度:116.299706
地理位置精度:65.0


Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区