|
1 | | -# getui-pushapi-java-client-v2 |
| 1 | +欢迎使用[个推**PUSH** SDK For Java](https://docs.getui.com/getui/server/rest_v2/introduction/)。 |
| 2 | + |
| 3 | +`个推PUSH SDK For Java`的主要目标是提升开发者在**服务端**集成个推推送服务的开发效率。 |
| 4 | +开发者不需要进行复杂编程即可使用个推推送服务的各项常用功能,SDK可以自动帮您满足调用过程中所需的鉴权、组装参数、发送HTTP请求等非功能性要求。 |
| 5 | + |
| 6 | +下面向您介绍`个推PUSH SDK For Java`的使用方法。 |
| 7 | + |
| 8 | + |
| 9 | +## 环境要求 |
| 10 | +1. 需要配合`JDK 1.6`或其以上版本。 |
| 11 | + |
| 12 | +2. 使用`个推PUSH SDK`前,您需要先前往[个推开发者中心](https://dev.getui.com) 完成开发者接入的一些准备工作,创建应用。详细见[操作步骤](https://docs.getui.com/getui/start/devcenter/#1) |
| 13 | + |
| 14 | +3. 准备工作完成后,前往[个推开发者中心](https://dev.getui.com)获取应用配置,后续将作为使用SDK的输入。详细见[操作步骤](https://docs.getui.com/getui/start/devcenter/#11) |
| 15 | + |
| 16 | + |
| 17 | +## 安装依赖 |
| 18 | +### 通过[Maven](https://mvnrepository.com/)来管理项目依赖 |
| 19 | +推荐通过Maven来管理项目依赖,您只需在项目的`pom.xml`文件中声明如下依赖 |
| 20 | + |
| 21 | +```xml |
| 22 | + <dependency> |
| 23 | + <groupId>com.getui</groupId> |
| 24 | + <artifactId>rasv2-java-sdk</artifactId> |
| 25 | + <version>1.0.0.0</version> |
| 26 | + </dependency> |
| 27 | +``` |
| 28 | + |
| 29 | +## 快速开始 |
| 30 | +### 普通调用 |
| 31 | +下列代码示例向您展示了使用`个推Push SDK For Java`调用一个API的3个主要步骤: |
| 32 | + |
| 33 | +1. 设置参数,创建API。 |
| 34 | +2. 发起API调用。 |
| 35 | +3. 处理响应。 |
| 36 | + |
| 37 | +##### 使用示例:**创建API** |
| 38 | + |
| 39 | +```java |
| 40 | +public class TestCreatApi { |
| 41 | + public void test() { |
| 42 | + GtApiConfiguration apiConfiguration = new GtApiConfiguration(); |
| 43 | + //填写应用配置 |
| 44 | + apiConfiguration.setAppId("xxx"); |
| 45 | + apiConfiguration.setAppKey("xxx"); |
| 46 | + apiConfiguration.setMasterSecret("xxx"); |
| 47 | + // 接口调用前缀,请查看文档: 接口调用规范 -> 接口前缀, 可不填写appId |
| 48 | + apiConfiguration.setDomain("https://restapi.getui.com/v2/"); |
| 49 | + // 实例化ApiHelper对象,用于创建接口对象 |
| 50 | + ApiHelper apiHelper = ApiHelper.build(apiConfiguration); |
| 51 | + // 创建对象,建议复用。目前有PushApi、StatisticApi、UserApi |
| 52 | + PushApi pushApi = apiHelper.creatApi(PushApi.class); |
| 53 | + } |
| 54 | + } |
| 55 | +} |
| 56 | +``` |
| 57 | + |
| 58 | +##### 使用示例:**推送API**_根据cid进行单推 |
| 59 | + |
| 60 | +```java |
| 61 | +public class TestPushApi { |
| 62 | + //pushApi的创建见上述使用示例:创建API |
| 63 | + public PushApi pushApi; |
| 64 | + public void test() { |
| 65 | + //根据cid进行单推 |
| 66 | + PushDTO<Audience> pushDTO = new PushDTO<Audience>(); |
| 67 | + // 设置推送参数 |
| 68 | + pushDTO.setRequestId(System.currentTimeMillis() + ""); |
| 69 | + PushMessage pushMessage = new PushMessage(); |
| 70 | + pushDTO.setPushMessage(pushMessage); |
| 71 | + GTNotification notification = new GTNotification(); |
| 72 | + pushMessage.setNotification(notification); |
| 73 | + notification.setTitle("标题" + new Date()); |
| 74 | + notification.setBody("body"); |
| 75 | + notification.setClickType("url"); |
| 76 | + notification.setUrl("https://www.getui.com"); |
| 77 | + // 设置接收人信息 |
| 78 | + Audience audience = new Audience(); |
| 79 | + pushDTO.setAudience(audience); |
| 80 | + audience.addCid("xxx"); |
| 81 | + |
| 82 | + // 进行cid单推 |
| 83 | + ApiResult<Map<String, Map<String, String>>> apiResult = pushApi.pushToSingleByCid(pushDTO); |
| 84 | + if (apiResult.isSuccess()) { |
| 85 | + // success |
| 86 | + System.out.println(apiResult.getData()); |
| 87 | + } else { |
| 88 | + // failed |
| 89 | + System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg()); |
| 90 | + } |
| 91 | + } |
| 92 | +} |
| 93 | +``` |
| 94 | +##### 使用示例:**统计API**_获取单日推送数据 |
| 95 | +```java |
| 96 | +public class TestStatisticApi { |
| 97 | + //StatisticApi的创建见上述使用示例:创建API |
| 98 | + public StatisticApi statisticApi; |
| 99 | + public void test() { |
| 100 | + // 获取单日推送数据 |
| 101 | + Set<String> taskIds = new HashSet<String>(); |
| 102 | + taskIds.add("xxx"); |
| 103 | + ApiResult<Map<String, Map<String, StatisticDTO>>> apiResult = statisticApi.queryPushResultByTaskIds(taskIds); |
| 104 | + if (apiResult.isSuccess()) { |
| 105 | + // success |
| 106 | + System.out.println(apiResult.getData()); |
| 107 | + } else { |
| 108 | + // failed |
| 109 | + System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg()); |
| 110 | + } |
| 111 | + } |
| 112 | +} |
| 113 | +``` |
| 114 | + |
| 115 | + |
| 116 | +##### 使用示例:**用户API**_查询用户状态 |
| 117 | +```java |
| 118 | +public class TestUserApi { |
| 119 | + //UserApi的创建见上述使用示例:创建API |
| 120 | + public UserApi userApi; |
| 121 | + public void test() { |
| 122 | + Set<String> cids = new HashSet<String>(); |
| 123 | + cids.add("xxx"); |
| 124 | + // 查询用户状态 |
| 125 | + ApiResult<Map<String, CidStatusDTO>> apiResult = userApi.queryUserStatus(cids); |
| 126 | + if (apiResult.isSuccess()) { |
| 127 | + // success |
| 128 | + System.out.println(apiResult.getData()); |
| 129 | + } else { |
| 130 | + // failed |
| 131 | + System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg()); |
| 132 | + } |
| 133 | + } |
| 134 | +} |
| 135 | +``` |
| 136 | +> 其余推送功能[可参考该链接](https://github.com/GetuiLaboratory/getui-pushapi-java-client-v2/tree/main/src/test/java/com/getui/push/v2/sdk/api) |
| 137 | +
|
| 138 | + |
| 139 | +### 设置代理 |
| 140 | +> 当需要使用代理进行http访问时,可以参考如下设置 |
| 141 | +
|
| 142 | +```java |
| 143 | + GtApiConfiguration apiConfiguration = new GtApiConfiguration(); |
| 144 | + //设置代理对象,参数依次为host、端口、鉴权账户、鉴权密码。其中鉴权账户密码可选 |
| 145 | + GtHttpProxyConfig proxyConfig = new GtHttpProxyConfig("xxx",xxx,"xxx","xxx"); |
| 146 | + apiConfiguration.setProxyConfig(proxyConfig); |
| 147 | + ApiHelper apiHelper = ApiHelper.build(apiConfiguration); |
| 148 | + PushApi pushApi = apiHelper.creatApi(PushApi.class); |
| 149 | +``` |
| 150 | + |
| 151 | + |
| 152 | +## 已支持的API列表 |
| 153 | +以下是消息推送功能与推送API的对应关系 |
| 154 | + |
| 155 | +| API类别 | 功能 | 调用的API名称 | |
| 156 | +|-----------|-----------------|-----------------------------------------------------------| |
| 157 | +| 鉴权API | [鉴权](https://docs.getui.com/getui/server/rest_v2/token/#0) | com.getui.push.v2.sdk.api.AuthApi.auth | |
| 158 | +| 鉴权API | [删除鉴权](https://docs.getui.com/getui/server/rest_v2/token/#1) | com.getui.push.v2.sdk.api.AuthApi.close | |
| 159 | +| 推送API | [cid单推](https://docs.getui.com/getui/server/rest_v2/push/#1) | com.getui.push.v2.sdk.api.PushApi.pushToSingleByCid | |
| 160 | +| 推送API | [别名单推](https://docs.getui.com/getui/server/rest_v2/push/#2) | com.getui.push.v2.sdk.api.PushApi.pushToSingleByAlias | |
| 161 | +| 推送API | [cid批量单推](https://docs.getui.com/getui/server/rest_v2/push/#3) | com.getui.push.v2.sdk.api.PushApi.pushBatchByCid | |
| 162 | +| 推送API | [别名批量单推](https://docs.getui.com/getui/server/rest_v2/push/#4) | com.getui.push.v2.sdk.api.PushApi.pushBatchByAlias | |
| 163 | +| 推送API | [tolist创建消息](https://docs.getui.com/getui/server/rest_v2/push/#5) | com.getui.push.v2.sdk.api.PushApi.createMsg | |
| 164 | +| 推送API | [cid批量推](https://docs.getui.com/getui/server/rest_v2/push/#6) | com.getui.push.v2.sdk.api.PushApi.pushListByCid | |
| 165 | +| 推送API | [别名批量推](https://docs.getui.com/getui/server/rest_v2/push/#7) | com.getui.push.v2.sdk.api.PushApi.pushListByAlias | |
| 166 | +| 推送API | [群推](https://docs.getui.com/getui/server/rest_v2/push/#8) | com.getui.push.v2.sdk.api.PushApi.pushAll | |
| 167 | +| 推送API | [条件筛选用户推送](https://docs.getui.com/getui/server/rest_v2/push/#9) | com.getui.push.v2.sdk.api.PushApi.pushByTag | |
| 168 | +| 推送API | [标签快速推送](https://docs.getui.com/getui/server/rest_v2/push/#10) | com.getui.push.v2.sdk.api.PushApi.pushByFastCustomTag | |
| 169 | +| 推送API | [停止任务](https://docs.getui.com/getui/server/rest_v2/push/#11) | com.getui.push.v2.sdk.api.PushApi.stopPush | |
| 170 | +| 推送API | [查询定时任务](https://docs.getui.com/getui/server/rest_v2/push/#12) | com.getui.push.v2.sdk.api.PushApi.queryScheduleTask | |
| 171 | +| 推送API | [删除定时任务](https://docs.getui.com/getui/server/rest_v2/push/#13) | com.getui.push.v2.sdk.api.PushApi.deleteScheduleTask | |
| 172 | +| 统计API | [获取推送结果](https://docs.getui.com/getui/server/rest_v2/report/#1) | com.getui.push.v2.sdk.api.StatisticApi.queryPushResultByTaskIds | |
| 173 | +| 统计API | [任务组名查报表](https://docs.getui.com/getui/server/rest_v2/report/#2) | com.getui.push.v2.sdk.api.StatisticApi.queryPushResultByGroupName | |
| 174 | +| 统计API | [单日推送数据](https://docs.getui.com/getui/server/rest_v2/report/#3) | com.getui.push.v2.sdk.api.StatisticApi.queryPushResultByDate | |
| 175 | +| 统计API | [单日用户数据接口](https://docs.getui.com/getui/server/rest_v2/report/#4) | com.getui.push.v2.sdk.api.StatisticApi.queryUserDataByDate | |
| 176 | +| 统计API | [24小时在线用户数](https://docs.getui.com/getui/server/rest_v2/report/#5) | com.getui.push.v2.sdk.api.StatisticApi.queryOnlineUserData | |
| 177 | +| 用户API | [绑定别名](https://docs.getui.com/getui/server/rest_v2/user/#1) | com.getui.push.v2.sdk.api.UserApi.bindAlias | |
| 178 | +| 用户API | [根据cid查询别名](https://docs.getui.com/getui/server/rest_v2/user/#2) | com.getui.push.v2.sdk.api.UserApi.queryAliasByCid | |
| 179 | +| 用户API | [根据别名查询cid](https://docs.getui.com/getui/server/rest_v2/user/#3) | com.getui.push.v2.sdk.api.UserApi.queryCidByAlias | |
| 180 | +| 用户API | [批量解绑别名](https://docs.getui.com/getui/server/rest_v2/user/#4) | com.getui.push.v2.sdk.api.UserApi.batchUnbindAlias | |
| 181 | +| 用户API | [解绑所有别名](https://docs.getui.com/getui/server/rest_v2/user/#5) | com.getui.push.v2.sdk.api.UserApi.unbindAllAlias | |
| 182 | +| 用户API | [一个用户绑定一批标签](https://docs.getui.com/getui/server/rest_v2/user/#6) | com.getui.push.v2.sdk.api.UserApi.userBindTags | |
| 183 | +| 用户API | [一批用户绑定一个标签](https://docs.getui.com/getui/server/rest_v2/user/#7) | com.getui.push.v2.sdk.api.UserApi.usersBindTag | |
| 184 | +| 用户API | [一批用户解绑一个标签](https://docs.getui.com/getui/server/rest_v2/user/#8) | com.getui.push.v2.sdk.api.UserApi.deleteUsersTag | |
| 185 | +| 用户API | [查询标签](https://docs.getui.com/getui/server/rest_v2/user/#9) | com.getui.push.v2.sdk.api.UserApi.queryUserTags | |
| 186 | +| 用户API | [添加黑名单用户](https://docs.getui.com/getui/server/rest_v2/user/#10) | com.getui.push.v2.sdk.api.UserApi.addBlackUser | |
| 187 | +| 用户API | [移除黑名单用户](https://docs.getui.com/getui/server/rest_v2/user/#11) | com.getui.push.v2.sdk.api.UserApi.removeBlackUser | |
| 188 | +| 用户API | [查询用户状态](https://docs.getui.com/getui/server/rest_v2/user/#12) | com.getui.push.v2.sdk.api.UserApi.queryUserStatus | |
| 189 | +| 用户API | [设置角标(仅支持IOS)](https://docs.getui.com/getui/server/rest_v2/user/#13) | com.getui.push.v2.sdk.api.UserApi.setBadge | |
| 190 | +| 用户API | [查询用户总量](https://docs.getui.com/getui/server/rest_v2/user/#14) | com.getui.push.v2.sdk.api.UserApi.queryUser | |
| 191 | + |
| 192 | +> 注:更多API持续更新中,敬请期待。 |
| 193 | +
|
| 194 | + |
| 195 | +## 新API接口开发指南 |
| 196 | +1. 新建api接口类,使用类注解`com.getui.push.v2.sdk.anno.GtApi`标记为个推接口类 |
| 197 | + |
| 198 | +2. 接口,使用`com.getui.push.v2.sdk.anno.method`包下的方法注解`GtGet`/`GtPost`/`GtPut`/`GtDelete`标记请求方式,分别代表`GET`、`POST`、`PUT`、`DELETE`四种HTTP请求方式 |
| 199 | + |
| 200 | +3. 参数,使用`com.getui.push.v2.sdk.anno.param`包下的参数注解`GtPathParam`/`GtHeaderParam`/`GtQueryParam`/`GtBodyParam`标记参数类型,分别表示HTTP请求中的四种参数: 路径参数/header参数/query参数/body参数 |
| 201 | + |
| 202 | +## 其他链接 |
| 203 | +[个推开发者平台](https://docs.getui.com/) |
0 commit comments