极光推送-服务端代码

1.依赖

1.1.maven

pom.xml

  <dependency>
      <groupId>cn.jpush.api</groupId>
      <artifactId>jpush-client</artifactId>
      <version>3.3.3</version>
  </dependency>
<dependency> <groupId>cn.jpush.api</groupId> <artifactId>jiguang-common</artifactId> <version>1.0.8</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.6.Final</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency> <!-- For log4j --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>

 

1.2.jar包

jpush-client-3.3.3.jar

jiguang-common-1.0.8.jar

netty-all-4.1.6.Final.jar

gson-2.3.jar

slf4j-api-1.7.7.jar

 

2.推送工具类

2.1.代码示例

    /**
     * 调用极光推送,推送消息
     * @param msg 消息内容
     * @param title 消息标题
     * @param alias 设备码
     * @param extras 额外信息(用于前台传递数据)
     * @return
     */
    public static boolean send(String msg, String title,String alias,Map<String ,String> extras) {
        //极光推送企业账号信息
        String MASTER_SECRET = getProperty("MASTER_SECRET");
        String APP_KEY =getProperty("APP_KEY");
        
        //加密设备码
        String aliasMd5 = MD5Util.md5Digest(alias).toLowerCase();
        logger.error("=====MASTER_SECRET="+MASTER_SECRET);
        logger.error("=====APP_KEY="+APP_KEY);
        logger.error("=====alias="+alias);
        logger.error("=====aliasMd5="+aliasMd5);
        logger.error("=====extras="+extras.get("userType").toString());
        
        //获取设备类型
        String equipmentType = extras.get("equipmentType");    
        
        //获取 payload 对象
        PushPayload payload = null;
        if( equipmentType != null && StringUtil2.equals("ios", equipmentType)){
            payload = buildPushObject_ios_alias_alertWithTitle(msg, title,aliasMd5,extras);
        }else if(equipmentType != null && StringUtil2.equals("android", equipmentType)){            
            payload = buildPushObject_android_alias_alertWithTitle(msg, title,aliasMd5,extras);
        }else{
            logger.info("equipmentType 为空");
            return false;
        }
        //获取 jpushClient 对象
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null,ClientConfig.getInstance());
        try {
            PushResult result = jpushClient.sendPush(payload);
            logger.info(LOGO_TXT + result);
            return result.isResultOK();
        } catch (APIConnectionException e) {
            e.printStackTrace();
            // Connection error, should retry later
            logger.error(LOGO_TXT+"Connection error, should retry later", e);

        } catch (APIRequestException eapi) {
            eapi.printStackTrace();
            // Should review the error, and fix the request
            logger.error(LOGO_TXT+"Should review the error, and fix the request", eapi);
            logger.info(LOGO_TXT+"HTTP Status: " + eapi.getStatus());
            logger.info(LOGO_TXT+"Error Code: " + eapi.getErrorCode());
            logger.info(LOGO_TXT+"Error Message: " + eapi.getErrorMessage());
        }
        return false;
    }

 

    public static PushPayload buildPushObject_android_alias_alertWithTitle(
            String msg, String title, String alias ,Map<String,String> extras) {
        
        return PushPayload.newBuilder().setPlatform(Platform.android())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.android(msg, title, extras))
                .build();
    }
    
    public static PushPayload buildPushObject_ios_alias_alertWithTitle(
            String msg, String title, String alias ,Map<String,String> extras) {

        return PushPayload.newBuilder().setPlatform(Platform.ios())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.ios("【"+title+"】"+msg, extras)).
                setOptions(Options.newBuilder().setApnsProduction(true).build())
                .build();
    }

 

3.测试方法

3.1.代码测试

    public static void main(String[] args) {
        String msg ="msgtest111";
        String title ="title11";
        String alias ="333333";
//        String alias ="FB7E44E6-CBFC-49EB-B18A-3DC51D609DC9";
        String url = "www.baidu.com";
        Map<String ,String> m = new HashMap<String, String>();
        m.put("equipmentType", "ios");
        m.put("userType", "custromer");
        PushUtil.send(msg, title, alias,m);
    }

 

3.2.网站验证

 登录极光推送网站,登录企业账户,查询推送历史

https://docs.jiguang.cn/jpush/

posted @ 2018-01-04 16:08  MIC2016  阅读(949)  评论(0编辑  收藏  举报