Queck start是一个介绍如何使用Java sdk的入门手册,方便用户快速地通过sdk使用百度云推送服务。
如果已经是百度开发者用户,请直接跳至step2。 关于注册开发者账号,请参见:注册成为百度开发者。
如已使用push服务,请直接跳至step4。
API key (AK) : 一个应用的公钥及唯一标识。用于在使用百度开发者服务时标记一个应用,创建后不能修改。
Secret key (SK) : 对应一个AK的密钥,用于在使用百度开发者服务时生成签名或加密数据,开发者可以随时进行重置. 请务必确认SK的内容不会泄露给第三方,否则可能产生安全问题,如确认SK被泄露,请立即在开发者中心进行重置。
API key和Secret key将组成校验对,用于app的合法身份验证。另外,它们也将用于构造BaiduPushClient对象,以便于sdk接口的调用。
如果客户端已安装应用demo,并且demo运行正常,请直接跳至step4。
channelId: 设备的唯一标识, 在推送消息时,用于指定消息的目标接收设备。
本节以单播推送接口的使用实例介绍Java SDK接口的使用流程,其他接口调用可参考本流程。另外,Java SDK在包com.baidu.yun.push.sample包(下图)给出了所有接口的使用实例,方便用户快速熟悉接口的使用。下载最新Java SDK
创建PushKeyPair
String apiKey = “xxxxxxxxxxxxxxxxxxxxxx”;
String secretKey = “xxxxxxxxxxxxxxxxxxxxxx”;
PushKeyPair pair = new PushKeyPair(apiKey,secretKey);
创建BaiduPushClient,访问SDK接口
BaiduPushClient pushClient = new BaiduPushClient(pair,
BaiduPushConstants.CHANNEL_REST_URL);
注册YunLogHandler,获取本次请求的交互信息
pushClient.setChannelLogHandler (new YunLogHandler () {
@Override
public void onHandle (YunLogEvent event) {
System.out.println(event.getMessage());
}
});
设置请求参数,创建请求实例
PushMsgToSingleDeviceRequest request = new PushMsgToSingleDeviceRequest().
addChannelId("xxxxxxxxxxxxxxxxxx").
addMsgExpires(new Integer(3600)). //设置消息的有效时间,单位秒,默认3600 x 5.
addMessageType(1). //设置消息类型,0表示消息,1表示通知,默认为0.
addMessage("{\"title\":\"TEST\",\"description\":\"Hello Baidu push!\"}").
addDeviceType(3); //设置设备类型,3 for android, 4 for ios.
执行Http请求,获取返回结果
PushMsgToSingleDeviceResponse response = pushClient.
pushMsgToSingleDevice(request);
Http请求结果打印
System.out.println("msgId: " + response.getMsgId()
+ ",sendTime: " + response.getSendTime());
异常处理
try{
//设置请求参数,创建请求实例
.......................
//执行Http请求,获取返回结果
.......................
//Http请求结果打印
.......................
} catch (PushClientException e) {
/*ERROROPTTYPE 用于设置异常的处理方式 -- 抛出异常和捕获异常,
*'true' 表示抛出, 'false' 表示捕获。
*/
if (BaiduPushConstants.ERROROPTTYPE) {
throw e;
} else {
e.printStackTrace();
}
} catch (PushServerException e) {
if (BaiduPushConstants.ERROROPTTYPE) {
throw e;
} else {
System.out.println(String.format(
"requestId: %d, errorCode: %d, errorMessage: %s",
e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));
}
}