极光推送接入(一)

极光推送接入(一)
一,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
极光推送接入(一)_第1张图片
权限设置
极光推送接入(一)_第2张图片
AppKey作为username,AppKey:MasterSecret使用base64加密作为密码
header设置
极光推送接入(一)_第3张图片
测试成功后右边会返回信息,有sendno表示推送成功,但是不代表设备收到,下面看看极光的管理界面:
极光推送接入(一)_第4张图片
注意下拉选择api,如果选择web则是在管理后台的在线推送的。注意使用java SDK在服务端推送的也在Api里统计。
如果需要打算使用httpclient自己在服务端发送请求,要看全串可以在官网找,或者先用这个工具测试通过了查看:
极光推送接入(一)_第5张图片

下面是推送的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发而已。这次就分享到这里,希望跟大家互相学习。

你可能感兴趣的:(组件集成)