极光推送接入(一)
一,jar引入
cn.jpush.api
jpush-client
3.3.4
这个是主要的,其他依赖的jar根据情况添加,我是只添加了这个。log日志打印/gson是之前有已经加入了,官网说如果使用maven构建项目可能需要添加以下依赖,大家可以根据具体情况添加
cn.jpush.api
jiguang-common
1.1.1
io.netty
netty-all
4.1.6.Final
compile
com.google.code.gson
gson
2.3
org.slf4j
slf4j-api
1.7.7
org.slf4j
slf4j-log4j12
1.7.7
log4j
log4j
1.2.17
二,使用
上面是我申请的账号后,新建的应用信息。这个有点例外的是没有APP_ID,它是使用AppKey和Master Secret,AppKey作为username,AppKey:MasterSecret使用base64加密作为密码。下面我们还是来使用Insomnia工具测试下RestApi
权限设置
AppKey作为username,AppKey:MasterSecret使用base64加密作为密码
header设置
测试成功后右边会返回信息,有sendno表示推送成功,但是不代表设备收到,下面看看极光的管理界面:
注意下拉选择api,如果选择web则是在管理后台的在线推送的。注意使用java SDK在服务端推送的也在Api里统计。
如果需要打算使用httpclient自己在服务端发送请求,要看全串可以在官网找,或者先用这个工具测试通过了查看:
下面是推送的java代码,使用java SDK的代码
/** 极光推送 **/
private static final String ALERT = "推送信息";
/**
*
*/
private static ClientConfig jPushClientConfig = null;
private static JPushClient jpushClient = null;
/**
* jPush初始化
*/
private static void jPushInit() {
if(jPushClientConfig == null) {
jPushClientConfig = ClientConfig.getInstance();
}
if(jpushClient == null) {
jpushClient = new JPushClient(PropertiesUtils.getProperty("JPUSH_MASTER_SECRET"), PropertiesUtils.getProperty("JPUSH_APP_KEY"), null, jPushClientConfig);
}
}
/**
* 生成极光推送对象PushPayload(采用java SDK)
* @param alias
* @param alert
* @return PushPayload
*/
public static PushPayload buildPushObject_android_ios_alias_alert(String title,String alias,String alert){
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.alias(alias)) //user_id作为别名,app安装注册需要设置,后台推送通过这个字段
//.setAudience(Audience.all())
.setNotification(Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.addExtra("type", "infomation")
.setTitle(title)
.setAlert(alert)
.build())
.addPlatformNotification(IosNotification.newBuilder()
.addExtra("type", "infomation")
.setAlert(alert)
.build())
.build())
.setOptions(Options.newBuilder()
.setApnsProduction(false)//true-推送生产环境 false-推送开发环境(测试使用参数)
.setTimeToLive(90)//消息在JPush服务器的失效时间(测试使用参数)
.build())
.build();
}
/**
* 极光推送方法(采用java SDK)
* @param alias 就是user_id
* @param alert 内容
* @return PushResult
*/
public static PushResult jPushMsg(String title,String alias,String alert){
MsgSendTools.jPushInit();
PushPayload payload = buildPushObject_android_ios_alias_alert(title,alias,alert);
try {
return jpushClient.sendPush(payload);
} catch (APIConnectionException e) {
logger.error("Connection error. Should retry later. ", e);
return null;
} catch (APIRequestException e) {
logger.error("Error response from JPush server. Should review and fix it. ", e);
logger.info("HTTP Status: " + e.getStatus());
logger.info("Error Code: " + e.getErrorCode());
logger.info("Error Message: " + e.getErrorMessage());
logger.info("Msg ID: " + e.getMsgId());
return null;
}
}
上面就是核心代码,关键地方有解释,如果深度使用,官网的API还需要继续看,后面看APP需要什么接口,然后再看官网文档,开发使用,我们就是封装http请求,用httpclient发而已。这次就分享到这里,希望跟大家互相学习。