博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己写了一个友盟推送的util
阅读量:6207 次
发布时间:2019-06-21

本文共 13761 字,大约阅读时间需要 45 分钟。

hot3.png

public class PushAppUtil {    private static Logger log = LoggerFactory.getLogger(PushAppUtil.class);        private static String appkey = null;    private static String masterSecret = null;    private static String timestamp = null;    private static String validationToken = null;        // The host    private static final String host = "http://msg.umeng.com";    //    // The upload path//    private static final String uploadPath = "/upload";        // The post path    private static final String postPath = "/api/send";        // The user agent    private static final String USER_AGENT = "Mozilla/5.0";            static {        try {            appkey = "yourappkey";            masterSecret = "yoursecret";            timestamp = Integer.toString((int)(System.currentTimeMillis() / 1000));            // Generate MD5 of appkey, masterSecret and timestamp as validation_token            validationToken = DigestUtils.md5Hex(appkey.toLowerCase() + masterSecret.toLowerCase() + timestamp);        } catch (Exception e) {            e.printStackTrace();            System.exit(1);        }    }        public static void sendAndroidBroadcast(String ticker, String title, String text, String action) throws Exception {        TutorMessage message = new TutorMessage();                message.setAppkey(appkey);        message.setTimestamp(timestamp);        message.setValidationToken(validationToken);        message.setType("broadcast");        message.setTicker(ticker);        message.setTitle(title);        message.setText(text);        message.setAfterOpen("go_app");        message.setDisplayType("notification");        // Set 'production_mode' to 'false' if it's a test device.         // For how to register a test device, please see the developer doc.        message.setProductionMode("true");        // Set customized fields        message.setTutorAction(action);                ObjectMapper mapper = new ObjectMapper();        String result = mapper.writeValueAsString(message);        send(result);    }        private static boolean send(String message) throws Exception {        HttpClient client = new HttpClient();                String url = host + postPath;        PostMethod post = new PostMethod(url);        post.setRequestHeader("User-Agent", USER_AGENT);        RequestEntity se = new StringRequestEntity(message, "UTF-8", "UTF-8");                log.debug(message);        post.setRequestEntity(se);        // Send the post request and get the response        int status = client.executeMethod(post);        log.debug(post.getResponseBodyAsString());                if (status == 200) {            log.debug("Response Code : " + status + ",Notification sent successfully.");            return true;        } else {            log.debug("Response Code : " + status + ",Failed to send the notification!");            return false;        }    }        public static void main(String[] args) {        try {            PushAppUtil.sendAndroidBroadcast("tricker", "title", "text", "0");        } catch (Exception ex) {            ex.printStackTrace();        }    }}
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)public class TutorMessage {    private String appkey;    private String timestamp;    @JsonProperty("validation_token")    private String validationToken;    private String type;    @JsonProperty("device_tokens")    private String deviceTokens;    private String alias;    @JsonProperty("alias_type")    private String aliasType;    @JsonProperty("file_id")    private String fileId;    private String filter;    @JsonProperty("production_mode")    private String productionMode;    private String feedback;    private String description;    @JsonProperty("thirdpartyId")    private String thirdparty_id;    private Payload payload;    private Policy policy;        @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)    public class Payload {        @JsonProperty("display_type")        private String displayType;                private Body body;        private Extra extra;        public String getDisplayType() {            return displayType;        }        public Body getBody() {            return body;        }        public Extra getExtra() {            return extra;        }    }        @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)    public class Policy {        @JsonProperty("start_time")        private String startTime;        @JsonProperty("expire_time")        private String expireTime;        @JsonProperty("max_send_num")        private String maxSendNum;        public String getStartTime() {            return startTime;        }        public String getExpireTime() {            return expireTime;        }        public String getMaxSendNum() {            return maxSendNum;        }    }        @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)    public class Body {        private String ticker;        private String title;        private String text;        @JsonProperty("builder_id")        private String builderId;        private String icon;        private String largeIcon;        private String img;        @JsonProperty("play_vibrate")        private String playVibrate;        @JsonProperty("play_lights")        private String playLights;        @JsonProperty("play_sound")        private String playSound;        private String sound;        @JsonProperty("after_open")        private String afterOpen;        private String url;        private String activity;        private String custom;        public String getTicker() {            return ticker;        }        public String getTitle() {            return title;        }        public String getText() {            return text;        }        public String getBuilderId() {            return builderId;        }        public String getIcon() {            return icon;        }        public String getLargeIcon() {            return largeIcon;        }        public String getImg() {            return img;        }        public String getPlayVibrate() {            return playVibrate;        }        public String getPlayLights() {            return playLights;        }        public String getPlaySound() {            return playSound;        }        public String getSound() {            return sound;        }        public String getAfterOpen() {            return afterOpen;        }        public String getUrl() {            return url;        }        public String getActivity() {            return activity;        }        public String getCustom() {            return custom;        }    }        @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)    public class Extra {        @JsonProperty("tutor_action")        private String tutorAction;                public String getTutorAction() {            return tutorAction;        }    }        public String getAppkey() {        return appkey;    }    public String getTimestamp() {        return timestamp;    }    public String getValidationToken() {        return validationToken;    }    public String getType() {        return type;    }    public String getDeviceTokens() {        return deviceTokens;    }    public String getAlias() {        return alias;    }    public String getAliasType() {        return aliasType;    }    public String getFileId() {        return fileId;    }    public String getFilter() {        return filter;    }    public String getProductionMode() {        return productionMode;    }    public String getFeedback() {        return feedback;    }    public String getDescription() {        return description;    }    public String getThirdparty_id() {        return thirdparty_id;    }    public Payload getPayload() {        return payload;    }        public void setAppkey(String appkey) {        this.appkey = appkey;    }    public void setTimestamp(String timestamp) {        this.timestamp = timestamp;    }    public void setValidationToken(String validationToken) {        this.validationToken = validationToken;    }    public void setType(String type) {        this.type = type;    }    public void setDeviceTokens(String deviceTokens) {        this.deviceTokens = deviceTokens;    }    public void setAlias(String alias) {        this.alias = alias;    }    public void setAliasType(String aliasType) {        this.aliasType = aliasType;    }    public void setFileId(String fileId) {        this.fileId = fileId;    }    public void setFilter(String filter) {        this.filter = filter;    }    public void setProductionMode(String productionMode) {        this.productionMode = productionMode;    }    public void setFeedback(String feedback) {        this.feedback = feedback;    }    public void setDescription(String description) {        this.description = description;    }    public void setThirdparty_id(String thirdparty_id) {        this.thirdparty_id = thirdparty_id;    }    public void setPayload(Payload payload) {        this.payload = payload;    }    public void setPolicy(Policy policy) {        this.policy = policy;    }    public void setDisplayType(String displayType) {        if(payload == null) {            payload = new Payload();        }        this.payload.displayType = displayType;    }    public void setStartTime(String startTime) {        if(policy == null) {            policy = new Policy();        }        this.policy.startTime = startTime;    }    public void setExpireTime(String expireTime) {        if(policy == null) {            policy = new Policy();        }        this.policy.expireTime = expireTime;    }    public void setMaxSendNum(String maxSendNum) {        if(policy == null) {            policy = new Policy();        }        this.policy.maxSendNum = maxSendNum;    }    public void setTicker(String ticker) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.ticker = ticker;    }    public void setTitle(String title) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.title = title;    }    public void setText(String text) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.text = text;    }    public void setBuilderId(String builderId) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.builderId = builderId;    }    public void setIcon(String icon) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.icon = icon;    }    public void setLargeIcon(String largeIcon) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.largeIcon = largeIcon;    }    public void setImg(String img) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.img = img;    }    public void setPlayVibrate(String playVibrate) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.playVibrate = playVibrate;    }    public void setPlayLights(String playLights) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.playLights = playLights;    }    public void setPlaySound(String playSound) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.playSound = playSound;    }    public void setSound(String sound) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.sound = sound;    }    public void setAfterOpen(String afterOpen) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.afterOpen = afterOpen;    }    public void setUrl(String url) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.url = url;    }    public void setActivity(String activity) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.activity = activity;    }    public void setCustom(String custom) {        if(payload == null) {            payload = new Payload();        }        if(payload.body == null) {            payload.body = new Body();        }        this.payload.body.custom = custom;    }    public void setTutorAction(String tutorAction) {        if(payload == null) {            payload = new Payload();        }        if(payload.extra == null) {            payload.extra = new Extra();        }        this.payload.extra.tutorAction = tutorAction;    }    }

转载于:https://my.oschina.net/u/2288185/blog/355585

你可能感兴趣的文章
×××S 2012 交互式报表 -- 同步交互式排序
查看>>
linux 文件按照大小排列
查看>>
Exchange 2010 创建设备室邮箱
查看>>
apache配置解析php
查看>>
我的友情链接
查看>>
SQL Server 2008 基础
查看>>
等保项目流程
查看>>
我的友情链接
查看>>
Win8 HTML5与JS编程学习笔记(二)
查看>>
用shell或者python写出各种图形
查看>>
php判断 二维数组中 是否 存在某个一维数组
查看>>
[故障解决]Mysql爆出ERROR 1044 (42000)的错误怎么办?
查看>>
Django运维后台的搭建之四:用bootstrap模板让运维前台变得更漂亮
查看>>
忘记 mysql 密码的取回方法
查看>>
[JavaScript] DOM操作技术
查看>>
不用开发实现RDS RDWeb门户美化和个性化
查看>>
mongodb morphia
查看>>
http协议介绍
查看>>
web管理
查看>>
交换机应用之端口模式(access、trunk和hybird)、是否标记(tag、untag)、端口缺省vlan(pvid、native id)...
查看>>