天天看點

第三方推送服務:個推服務推送流程

一、使用個推服務向手機端推送資料首先需要具備以下條件:

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;

public class PushMsgUtil {

//個推服務位址

    static String host = "http://sdk.open.api.igexin.com/apiex.htm";

    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;

    }

    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、祝福看到的你:幸福快樂!(沒錯就是你,哈哈..)