阿里Alibaba Cloud Mobile Push服務端API

來源:互聯網
上載者:User

標籤:%s   push   post   div   profile   mod   void   hal   depend   

極光推送最近老抽風,然後推送方案又一次改變,這次給大家帶來的是阿里的Alibaba Cloud Mobile Push服務端api:

 

首先是引入的依賴

<dependency>            <groupId>com.aliyun</groupId>            <artifactId>aliyun-java-sdk-push</artifactId>            <version>2.2.4</version>        </dependency>        <dependency>            <groupId>com.aliyun</groupId>            <artifactId>aliyun-java-sdk-core</artifactId>            <version>2.4.2</version>        </dependency>

然後老規矩,抽取之後的代碼untils

 

package com.commons.utils;import java.util.Date;import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.exceptions.ClientException;import com.aliyuncs.exceptions.ServerException;import com.aliyuncs.http.MethodType;import com.aliyuncs.profile.DefaultProfile;import com.aliyuncs.profile.IClientProfile;import com.aliyuncs.push.model.v20150827.CancelPushRequest;import com.aliyuncs.push.model.v20150827.CancelPushResponse;import com.aliyuncs.push.model.v20150827.PushRequest;import com.aliyuncs.push.model.v20150827.PushResponse;import com.aliyuncs.utils.ParameterHelper;import com.ecp.commons.api.APIConstants;import com.ecp.commons.utils.JsonUtil;public class JpushUtils {    public static final String appKey = com.ecp.commons.common.PropertiesUtil.getProperty("Push.appKey");    public static final String AppSecret = com.ecp.commons.common.PropertiesUtil.getProperty("Push.AppSecret");    public static final String accessKeyId = com.ecp.commons.common.PropertiesUtil.getProperty("Push.accessKeyId");    public static final String accesssecret = com.ecp.commons.common.PropertiesUtil.getProperty("Push.secret");    /**     *      * @auth Ren     * @date 2018年5月2日     * @decripe:把obj對象的json串推送到別名為DeviceSN的裝置上,同時記錄返回的msg_id     * @param obj推送對象,deviceSN裝置識別碼,MsgType推送的業務類型(APIConstants中定義)     */    public static PushResponse SendPush(Object obj, String DeviceSN, String MsgType) throws Exception {        PushRequest pushRequest = new PushRequest();        pushRequest.setMethod(MethodType.POST);        pushRequest.setAppKey(Long.valueOf(appKey));        pushRequest.setDeviceType(1);        pushRequest.setTarget("alias");        pushRequest.setTargetValue(DeviceSN);        pushRequest.setType(0); // 0:表示訊息(預設為0), 1:表示通知        pushRequest.setTitle(MsgType); // 訊息的標題        pushRequest.setBody(ObjectToJson(obj)); // 訊息的內容        IClientProfile profile = DefaultProfile.getProfile(APIConstants.REGION_HANGZHOU, accessKeyId, accesssecret);        DefaultAcsClient client = new DefaultAcsClient(profile);        PushResponse pushResponse = client.getAcsResponse(pushRequest);        System.out.printf("RequestId: %s, ResponseId: %s\n", pushResponse.getRequestId(), pushResponse.getResponseId());        return pushResponse;    }    /**     *      * @auth Ren     * @date 2018年6月6日     * @decripe:直接推所有     * @param obj推送對象,MsgType推送的業務類型(APIConstants中定義)     */    public static PushResponse SendPush(Object obj,String MsgType) throws Exception {        PushRequest pushRequest = new PushRequest();        pushRequest.setMethod(MethodType.POST);        pushRequest.setAppKey(Long.valueOf(appKey));        pushRequest.setDeviceType(1);        pushRequest.setTarget("all");        pushRequest.setTargetValue("all");        pushRequest.setType(0); // 0:表示訊息(預設為0), 1:表示通知        pushRequest.setTitle(MsgType); // 訊息的標題        pushRequest.setBody(ObjectToJson(obj)); // 訊息的內容        IClientProfile profile = DefaultProfile.getProfile(APIConstants.REGION_HANGZHOU, accessKeyId, accesssecret);        DefaultAcsClient client = new DefaultAcsClient(profile);        PushResponse pushResponse = client.getAcsResponse(pushRequest);        System.out.printf("RequestId: %s, ResponseId: %s\n", pushResponse.getRequestId(), pushResponse.getResponseId());        return pushResponse;    }    /**     *      * @auth Ren     * @date 2018年6月6日     * @decripe:定時推所有     * @param obj推送對象,MsgType推送的業務類型(APIConstants中定義)     */    public static PushResponse sendSchedulePushAll(Object obj, Date pushtime, String MsgType) throws Exception {        IClientProfile profile = DefaultProfile.getProfile(APIConstants.REGION_HANGZHOU, accessKeyId, accesssecret);        DefaultAcsClient client = new DefaultAcsClient(profile);        PushRequest pushRequest = new PushRequest();        pushRequest.setMethod(MethodType.POST);        pushRequest.setAppKey(Long.valueOf(appKey));        pushRequest.setDeviceType(1);        pushRequest.setTarget("all");        pushRequest.setTargetValue("all");        pushRequest.setType(0); // 0:表示訊息(預設為0), 1:表示通知        pushRequest.setTitle(MsgType); // 訊息的標題        pushRequest.setBody(ObjectToJson(obj)); // 訊息的內容        String pushTime = ParameterHelper.getISO8601Time(pushtime);        pushRequest.setPushTime(pushTime);        PushResponse pushResponse = client.getAcsResponse(pushRequest);        System.out.printf("RequestId: %s, ResponseId: %s\n", pushResponse.getRequestId(), pushResponse.getResponseId());        return pushResponse;            }    /**     *      * @auth Ren     * @date 2018年6月6日      * @decripe 定時推指定裝置     */    public static PushResponse sendSchedulePush(Object obj, String DeviceSN, Date pushtime, String MsgType) throws Exception{        IClientProfile profile = DefaultProfile.getProfile(APIConstants.REGION_HANGZHOU, accessKeyId, accesssecret);        DefaultAcsClient client = new DefaultAcsClient(profile);        PushRequest pushRequest = new PushRequest();        pushRequest.setMethod(MethodType.POST);        pushRequest.setAppKey(Long.valueOf(appKey));        pushRequest.setDeviceType(1);        pushRequest.setTarget("alias");        pushRequest.setTargetValue(DeviceSN);        pushRequest.setType(0); // 0:表示訊息(預設為0), 1:表示通知        pushRequest.setTitle(MsgType); // 訊息的標題        pushRequest.setBody(ObjectToJson(obj)); // 訊息的內容        String pushTime = ParameterHelper.getISO8601Time(pushtime);        pushRequest.setPushTime(pushTime);        PushResponse pushResponse = client.getAcsResponse(pushRequest);        System.out.printf("RequestId: %s, ResponseId: %s\n", pushResponse.getRequestId(), pushResponse.getResponseId());        return pushResponse;    }          /**     * 取消定時推送     * <p>     * //     */    public void testCancelPush(String ResponseId) throws Exception {        CancelPushRequest request = new CancelPushRequest();        request.setAppKey(Long.valueOf(appKey));        request.setMessageId(ResponseId);//推送時返回的ResponseId。        IClientProfile profile = DefaultProfile.getProfile(APIConstants.REGION_HANGZHOU, accessKeyId, accesssecret);        DefaultAcsClient client = new DefaultAcsClient(profile);        CancelPushResponse response = client.getAcsResponse(request);        System.out.println(response.getRequestId());    }    public static String ObjectToJson(Object o) {        String json = JsonUtil.getJsonString4JavaPOJO(o, "yyyy-MM-dd HH:mm:ss");        return json;    }}

 

阿里Alibaba Cloud Mobile Push服務端API

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.