美文网首页
个推服务端对接

个推服务端对接

作者: YAOAORAN | 来源:发表于2019-04-15 15:47 被阅读0次

个推开发者中心地址

服务端大致开发步骤

1.注册开发者账号;

2.创建应用;

3.查看应用配置, 包含AppID,AppSecret,AppKey,MasterSecret等信息;

4.引入官方依赖,进行服务端开发;

仓库

<repositories>
        <repository>
            <id>getui-nexus</id>
            <url>http://mvn.gt.igexin.com/nexus/content/repositories/releases/</url>
        </repository>
    </repositories>

依赖

<dependency>
            <groupId>com.gexin.platform</groupId>
            <artifactId>gexin-rp-sdk-http</artifactId>
            <version>4.0.1.17</version>
        </dependency>

        <dependency>
            <groupId>com.gexin.platform</groupId>
            <artifactId>gexin-rp-sdk-base</artifactId>
            <version>4.0.0.22</version>
        </dependency>

        <dependency>
            <groupId>com.gexin.platform</groupId>
            <artifactId>gexin-rp-sdk-template</artifactId>
            <version>4.0.0.16</version>
        </dependency>

数据透传推送工具类(引用自一篇博客,原文无从查找,侵删)

public class AppPushUtils {

    //定义常量, appId、appKey、masterSecret  在"个推控制台"中获得的应用配置
    // 由IGetui管理页面生成,是您的应用与SDK通信的标识之一,每个应用都对应一个唯一的AppID
    private static String appId = "";
    // 预先分配的第三方应用对应的Key,是您的应用与SDK通信的标识之一。
    private static String appKey = "";
    // 个推服务端API鉴权码,用于验证调用方合法性。在调用个推服务端API时需要提供。(请妥善保管,避免通道被盗用)
    private static String masterSecret = "";

    // 设置通知消息模板
    /*
     * 1. appId
     * 2. appKey
     * 3. 要传送到客户端的 msg
     * 3.1 标题栏:key = title,
     * 3.2 通知栏内容: key = titleText,
     * 3.3 穿透内容:key = command
     */
    private static TransmissionTemplate getNotifacationTemplate(String appId, String appKey, Map<String, String> msg) {
        // 在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用
        TransmissionTemplate template = new TransmissionTemplate();
        template.setAppId(appId);
        template.setAppkey(appKey);
        template.setTransmissionContent(msg.get("transText"));
        // 设置appid,appkey
        template.setAppId(appId);
        template.setAppkey(appKey);
        // 穿透消息设置为,1 强制启动应用
        template.setTransmissionType(1);
        // 设置穿透内容
        return template;
    }


    /**
     * 对单个用户推送消息
     *
     * @param cid 用户的clientId
     * @param msg 透传的参数
     * @return
     */
    public static IPushResult pushMsgToSingle(String cid, Map<String, String> msg) {
        // 代表在个推注册的一个 app,调用该类实例的方法来执行对个推的请求
        IGtPush push = new IGtPush(appKey, masterSecret);
        // 创建信息模板
        TransmissionTemplate template = getNotifacationTemplate(appId, appKey, msg);
        //定义消息推送方式为,单推
        SingleMessage message = new SingleMessage();
        // 设置推送消息的内容
        message.setData(template);
        //设置过期时间
        message.setOfflineExpireTime(24 * 3600 * 1000);
        //不限制网络环境
        message.setPushNetWorkType(0);
        // 设置推送目标
        Target target = new Target();
        target.setAppId(appId);
        // 设置cid
        target.setClientId(cid);
        // 获得推送结果
        IPushResult result = push.pushMessageToSingle(message, target);
        /*
         * 1. 失败:{result=sign_error}
         * 2. 成功:{result=ok, taskId=OSS-0212_1b7578259b74972b2bba556bb12a9f9a, status=successed_online}
         * 3. 异常
         */
        return result;
    }

    /**
     * 对多个用户推送透传消息
     *
     * @param cids
     * @param msg
     * @return
     */
    public static IPushResult pushMsgToList(List<String> cids, Map<String, String> msg) {
        // 代表在个推注册的一个 app,调用该类实例的方法来执行对个推的请求
        IGtPush push = new IGtPush(appKey, masterSecret);
        // 创建信息模板
        TransmissionTemplate template = getNotifacationTemplate(appId, appKey, msg);
        //定义消息推送方式为,多推
        ListMessage message = new ListMessage();
        // 设置推送消息的内容
        message.setData(template);
        //获取ContentId
        String contentId = push.getContentId(message);
        // 设置推送目标
        List<Target> targetList = new ArrayList<>();
        Target target;
        for (String cid : cids) {
            target = new Target();
            target.setAppId(appId);
            target.setClientId(cid);
            targetList.add(target);
        }
        // 获得推送结果
        IPushResult result = push.pushMessageToList(contentId, targetList);
        /*
         * 1. 失败:{result=sign_error}
         * 2. 成功:{result=ok, taskId=OSS-0212_1b7578259b74972b2bba556bb12a9f9a, status=successed_online}
         * 3. 异常
         */
        return result;
    }

    /**
     * 判断是否推送成功
     *
     * @param result
     * @return
     */
    public static boolean isPushSuccess(IPushResult result) {
        if (result.getResponse() != null && result.getResponse().get("result").toString().equals("ok")) {
            return true;
        }
        return false;
    }

相关文章

  • 个推服务端对接

    个推开发者中心地址 服务端大致开发步骤 1.注册开发者账号; 2.创建应用; 3.查看应用配置, 包含AppID...

  • 微信app支付

    这篇博客将会结合自己对接微信app支付服务端的操作进行一次总结,代码都会亮出来,方便大家对接 支付流程 介绍一个简...

  • 极光推送集成厂商踩坑

    1. 简介 2.对接各个厂商步骤2.1.小米通道对接2.2.华为通道对接2.3.其他通道对接 项目需要 替换原有推...

  • webapi服务端对接app

    目前移动端流行 ,本文章主要介绍本人(新手) 开发 与app对接服务端 进行分享 。不足之处请指正 与app对接 ...

  • Android 消息推送(个推)

    服务端 采用批量 单推模式 封装库用法

  • 个推JAVA服务端接入说明

    个推简介 官方文档 个推是商用级的移动应用消息推送云服务解决方案,客户端SDK支持Android和iOS两大平台。...

  • [Swagger] Swagger Codegen 高效开发客户

    [Swagger] Swagger Codegen 高效开发客户端对接服务端代码 @TOC 手机用户请横屏获取最佳...

  • AK/SK【HMAC】 认证

    概要介绍 AK/SK 认证通常用于调用 Open API【云服务 API】的服务端认证.在对接 PASS 平台和支...

  • android 音视频基础知识普及

    推流端 采集 处理 编码 推流 服务端 转码 录制 截图 鉴黄 播放端 拉流 解码 渲染 互动系统 聊天 礼物 点...

  • 不求服务端,自己改接口!Charles抓包工具在Android/

    前言 作为移动开发工程师,平时开发阶段跟接口相关的工作都是要和服务端的小伙伴进行对接的,在对接的过程中一定会有一些...

网友评论

      本文标题:个推服务端对接

      本文链接:https://www.haomeiwen.com/subject/npwuwqtx.html