百度云推送 java_java百度云推送

importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importcom.baidu.yun.core.log.YunLogEvent;importcom.baidu.yun.core.log.YunLogHandler;importcom.baidu.yun.push.auth.PushKeyPair;importcom.baidu.yun.push.client.BaiduPushClient;importcom.baidu.yun.push.constants.BaiduPushConstants;importcom.baidu.yun.push.exception.PushClientException;importcom.baidu.yun.push.exception.PushServerException;importcom.baidu.yun.push.model.PushMsgToSingleDeviceRequest;importcom.baidu.yun.push.model.PushMsgToSingleDeviceResponse;importcom.centit.server.webmgr.baidupush.po.AndroidMessage;importcom.centit.server.webmgr.baidupush.po.IOSMessage;importcom.centit.server.webmgr.baidupush.po.IOSMessageAps;importcom.centit.server.webmgr.baidupush.po.Notification;importcom.centit.server.webmgr.baidupush.po.SendMessage;importcom.centit.server.webmgr.common.DingTalkProperties;/***

* @Version : 1.0

* @Author : li_hao

* @Description : 百度推送

* @Date : 2017年11月9日 下午4:22:04*/

public classNotificationPusher {public static final Log log = LogFactory.getLog(NotificationPusher.class);/*** 推送消息到单个设备*/

public static String pushNotificationToSingleDevice(SendMessage sendMessage, Notification notification) throwsPushClientException, PushServerException {

Integer deviceType=notification.getDeviceType();

String apiKey= null;

String secretKey= null;if(deviceType == 3){

apiKey="你的android_api_key";

secretKey="你的android_secret_key";

}else if(deviceType == 4){

apiKey="你的ios_api_key";

secretKey= "你的ios_secret_key";

}

PushKeyPair pair= newPushKeyPair(apiKey, secretKey);

BaiduPushClient pushClient= newBaiduPushClient(pair, BaiduPushConstants.CHANNEL_REST_URL);

pushClient.setChannelLogHandler(newYunLogHandler() {

@Overridepublic voidonHandle(YunLogEvent event) {

log.info(String.format("推送回调日志:%s", event.getMessage()));

}

});try{

PushMsgToSingleDeviceRequest request= newPushMsgToSingleDeviceRequest();

String message= null;if(deviceType == 3){

message=JSON.toJSONString(sendMessage.getAndroidMessage());

}else if(deviceType == 4){

message=JSON.toJSONString(sendMessage.getIosMessage());

request.addDeployStatus(notification.getDeployStatus());//IOS的部署状态:Developer,2:Production.

}

request.addChannelId(notification.getChannelId());

request.addMsgExpires(notification.getMsgExpires());//设置message的有效时间

request.addMessageType(notification.getMessageType());//消息类型:1:通知,0:透传消息.默认为0注:IOS只有通知.

request.addDeviceType(deviceType); //设备类型:3:android,4:ios

JSONObject jsonMessage=JSONObject.parseObject(message);

request.addMessage(jsonMessage.toString());//发起请求

PushMsgToSingleDeviceResponse response =pushClient.pushMsgToSingleDevice(request);//请求结果解析

log.info(String.format("推送成功信息:msgId=%s,sendTime=", response.getMsgId(), response.getSendTime()));returnresponse.getMsgId();

}catch(PushClientException e) {//ERROROPTTYPE 用于设置异常的处理方式 -- 抛出异常和捕获异常,'true' 表示抛出, 'false' 表示捕获。

if(BaiduPushConstants.ERROROPTTYPE) {throwe;

}else{

log.error(String.format("推送客户端异常:%s",e.getMessage()));

}

}catch(PushServerException e) {if(BaiduPushConstants.ERROROPTTYPE) {throwe;

}else{

log.error(String.format("推送服务端异常:requestId: %d, errorCode: %d, errorMessage: %s", e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));

}

}return null;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值