第三方推送服务:个推服务推送流程
来源:互联网 发布:上海市物业大楼数据 编辑:程序博客网 时间:2024/05/02 01:25
一、使用个推服务向手机端推送数据首先需要具备以下条件:
1、个推账号(个推官网注册)
2、由苹果推送证书生成的.p12文件(ANDROID不需要证书)
3、个推SDK(个推官网下载)
二、以上条件具备后,开始架构推送服务
1、在申请的个推账号上:登记应用→添加.p12证书(IOS)→测试→登记成功
2、在app中集成个推的SDK(个推官网有文档)
3、找到刚才登记的应用→创建推送→填入相关信息→发送
三、使用java后台做数据推送
1、上述条件及架构完成后,在eclipes或myeclipse中新建一个项目
2、在项目中加入jar包(我的下载资源里有):
commons-codec-1.2.jar
commons-configuration-1.6.jar
commons-logging-1.0.3.jar
gexin-rp-sdk-base-4.0.0.2.jar
gexin-rp-sdk-http-4.0.0.2.jar
gexin-rp-sdk-template-4.0.0.2.jar
jackson-all-1.8.5.jar
protobuf-java-2.5.0.jar
3、新建推送类
4、在类中加入以下代码:
package com.push.util;import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONObject;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.AppMessage;
import com.gexin.rp.sdk.base.impl.ListMessage;
import com.gexin.rp.sdk.base.impl.SingleMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.base.payload.APNPayload;
import com.gexin.rp.sdk.exceptions.RequestException;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.TransmissionTemplate;
/**
* 使用第三方推送服务:个推
* @author xueyueyue
* @version 1.0
* @since 2015-09-17
*/
public class PushMsgUtil {
//个推服务地址
static String host = "http://sdk.open.api.igexin.com/apiex.htm";
/**
* 按CID单个推送
*
* @param appId 由IGetui管理页面生成,是您的应用与SDK通信的标识之一,每个应用都对应一个唯一的AppID
* @param appKey 预先分配的第三方应用对应的Key,是您的应用与SDK通信的标识之一。
* @param master 个推服务端API鉴权码,用于验证调用方合法性。在调用个推服务端API时需要提供
* @param CID 个推业务层中的对外用户标识,用于标识客户端身份,由第三方客户端获取并保存到第三方服务端,是个推SDK的唯一识别号,简称CID。
* @param obj 需要推送的JSON数据
* @return Boolean类型,true:成功,false:失败。
*/
public static Boolean pusMsgToSingle(String appId,String appKey,String master,String CID,String obj){
IGtPush push = new IGtPush(host, appKey, master);
//获取透传模板
TransmissionTemplate template = getTemplate(appId, appKey,obj);
SingleMessage message = new SingleMessage();
//是否支持离线推送(true:支持,false:不支持)
message.setOffline(true);
//离线有效时间,单位为毫秒,可选
message.setOfflineExpireTime(24 * 3600 * 1000);
message.setData(template);
//可选。判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。
message.setPushNetWorkType(0);
//设置推送目标
Target target = new Target();
//根据CID推送(CID和用户别名只能2者选其一)
target.setAppId(appId);
target.setClientId(CID);
//别名推送
// String alias = "张三";
// target.setAlias(alias);
IPushResult ret = null;
try{
ret = push.pushMessageToSingle(message, target);
}catch(RequestException e){
e.printStackTrace();
ret = push.pushMessageToSingle(message, target, e.getRequestId());
}
if(ret != null){
String flag = (String) ret.getResponse().get("result");
if(flag.equals("ok")){
System.out.println(ret.getResponse().toString());
return true;
}
System.out.println(ret.getResponse().toString());
}else{
System.out.println("服务器响应异常");
}
return false;
}
/**
* 透传模板
*
* @param appId 由IGetui管理页面生成,是您的应用与SDK通信的标识之一,每个应用都对应一个唯一的AppID
* @param appKey 预先分配的第三方应用对应的Key,是您的应用与SDK通信的标识之一。
* @param obj JSON字符串
* @return TransmissionTemplate类型
*/
public static TransmissionTemplate getTemplate(String appId,String appKey,String obj) {
TransmissionTemplate template = new TransmissionTemplate();
template.setAppId(appId);
template.setAppkey(appKey);
template.setTransmissionContent(obj);
template.setTransmissionType(2);
APNPayload payload = new APNPayload();
payload.setBadge(1);
payload.setContentAvailable(1);
payload.setSound("default");
payload.setCategory("$由客户端定义");
template.setAPNInfo(payload);
return template;
}
public static void main(String[] args) {
String appId = "et3Y5mTvvV5Wthq1cufvy1";
String appKey = "ImPMrVNUxtAvC1VH3KUsa2";
String master = "1wbcrbMyls62zvp1vieLm2";
String CID = "f135c2609e68cb4eab5a30ae6f25c63d";
JSONObject obj = new JSONObject();
obj.put("title", "个推测试");
obj.put("info", "当你看到我时,说明已经成功了!");
//单推
Boolean flag = PushMsgUtil.pusMsgToSingle(appId, appKey, master, CID, obj.toString());
System.out.println(flag);
}
}
四、此条很重要
咳咳...:
1、此文乃俺原创
2、也是饿第一次发帖
3、在此写下鄙人的座右铭:
微笑→_→让生活更美好!
4、祝福看到的你:幸福快乐!(没错就是你,哈哈..)
2 0
- 第三方推送服务:个推服务推送流程
- 第三方推送服务——个推
- 推送技术哪家强? 个推vs极光vs信鸽第三方推送服务对比
- 个推推送第三方服务的应用和自我理解(一)
- 个推推送第三方服务的应用和自我理解(二)
- 第三方推送服务比较
- 第三方推送-个推使用
- 8款第三方移动推送服务
- H5+个推实现消息推送服务
- Android第三方推送——极光推送,百度云推送,个推
- .net平台借助第三方推送服务在推送Android消息(极光推送)
- .net平台借助第三方推送服务在推送Android消息(极光推送)
- .net平台借助第三方推送服务在推送Android消息(极光推送)
- 第三方开发者服务——什么是推送
- iOS入门编程之第三方推送服务的接入
- 推送服务
- 推送服务
- 推送服务
- UI - 简单封装视图
- android使用java代码创建控件、布局
- 理解OAuth 2.0
- DLNA DMR实现
- fopen: failed to open stream: Permission de
- 第三方推送服务:个推服务推送流程
- 学习html5的video标签
- [error handle][servlet]转发导致的中文乱码
- cache的时间长的方法。
- Android layout属性大全
- #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER);
- android studio 导入 github 项目代码
- 【BLE】CC2541之主机端获取广播包数据
- yum提示Another app is currently holding the yum lock; waiting for it to exit...