关于个推的使用总结
<dependency>
<groupId>com.getui.push</groupId>
<artifactId>restful-sdk</artifactId>
<version>1.0.0.1</version>
</dependency>
在项目中可使用的主要是个推的单推模式,通过客户端获取用户的cid(clientId)后调用接口
通过用户的手机号设置别名,代码如下:
public void doUpdateCidAlias(String cid) {
String mobile = getLoginedUser().getMobile();//获取当前登录的用户
UserApi userApi = GetTuiApi.getUserApi();//自己写的UserApi生成的方法
CidAliasListDTO cidAliasListDTO = new CidAliasListDTO();
cidAliasListDTO.add(new CidAliasListDTO.CidAlias(cid,mobile));
userApi.bindAlias(cidAliasListDTO);
smartGeTuiMappingService.putInfoToGeTuiMapping(cid,mobile);//将信息存入自己的数据库中
}
创建对象(PushApi StatisticApi UserApi )
//创建对象,建议复用。目前有PushApi、StatisticApi、UserApi
public class GetTuiApi {
public static UserApi getUserApi(){
GtApiConfiguration apiConfiguration = new GtApiConfiguration();
//填写应用配置
apiConfiguration.setAppId(JPressOptions.get("geTuiAppId"));
apiConfiguration.setAppKey(JPressOptions.get("geTuiAppKey"));
apiConfiguration.setMasterSecret(JPressOptions.get("geTuiMasterSecret"));
apiConfiguration.setDomain("https://restapi.getui.com/v2/");
ApiHelper apiHelper = ApiHelper.build(apiConfiguration);
// 创建对象,建议复用。目前有PushApi、StatisticApi、UserApi
return apiHelper.creatApi(UserApi.class);
}
public static PushApi getPushApi(){
GtApiConfiguration apiConfiguration = new GtApiConfiguration();
//填写应用配置
apiConfiguration.setAppId(JPressOptions.get("geTuiAppId"));
apiConfiguration.setAppKey(JPressOptions.get("geTuiAppKey"));
apiConfiguration.setMasterSecret(JPressOptions.get("geTuiMasterSecret"));
apiConfiguration.setDomain("https://restapi.getui.com/v2/");
ApiHelper apiHelper = ApiHelper.build(apiConfiguration);
return apiHelper.creatApi(PushApi.class);
}
}
通过别名发送推送消息
/**
* @param alias_mobile 别名
* @param title 通知的题头
* @param body 通知消息的内容
*/
public static void gTPush(String alias_mobile,String title,String body){
PushApi pushApi = GetTuiApi.getPushApi();
//根据别名进行单推
PushDTO<Audience> pushDTO = new PushDTO<Audience>();
// 设置推送参数
pushDTO.setRequestId(System.currentTimeMillis() + "");
PushMessage pushMessage = new PushMessage();
pushDTO.setPushMessage(pushMessage);
GTNotification notification = new GTNotification();
pushMessage.setNotification(notification);
notification.setTitle(title);
notification.setBody(body);
//点击通知信息,跳转到App(打开APP)
notification.setClickType("startapp");//启动App click_type should choose one of ["url","intent","payload","payload_custom","none","startapp"]
// 设置接收人信息
Audience audience = new Audience();
pushDTO.setAudience(audience);
audience.addAlias(alias_mobile);
//audience.addCid("cid");
// 进行alia别名单推
ApiResult<Map<String, Map<String, String>>> apiResult = pushApi.pushToSingleByAlias(pushDTO);
//ApiResult<Map<String, Map<String, String>>> mapApiResult = pushApi.pushToSingleByCid(pushDTO); //通过CID进行发送(其他的一下发送方法可在pushApi中查看)
if (apiResult.isSuccess()) {
// success
System.out.println("个推success"+apiResult.getData());
} else {
// failed
System.out.println("个推失败"+"code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg());
}
}