1. 程式人生 > >極光推送>>java SDK服務端整合後臺專案

極光推送>>java SDK服務端整合後臺專案

PS:如果你是第一次用推送,那就直接按照我的步驟來,再去看官方文件,這樣,更容易能理解操作流程.還有——-請耐心看

極光文件(java SDK)請參考

步驟一:

  • 上註冊一個賬號
  • 其次,註冊完後登入,選擇極光開發者服務
    這裡寫圖片描述
  • 進去之後,建立一個應用,已有應用可跳過
    這裡寫圖片描述

  • 建立完成
    這裡寫圖片描述

  • 進入應用,看到AppKey和MasterSecret,這兩個引數在sdk整合的時候會用到
    這裡寫圖片描述

專案中的操作

  • 我是直接用的maven庫,畢竟這個年頭手動到jar包的專案估計沒幾個了,如果你是手動匯入jar,那麼,請去官網下載jar包-o-

Maven方式匯入極光推送的依賴jar包

  • PS:將下面全部jar複製到你專案的pom.xml裡面(我專案之前本來就有log4j,就沒有寫到下面,匯入的時候注意下,可以參考官網的jar包)
<dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jpush-client</artifactId>
    <version>3.2.17</version>
</dependency>

<dependency>
    <groupId>cn.jpush.api</groupId
>
<artifactId>jiguang-common</artifactId> <version>1.0.3</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.6.Final</version> <scope>compile</scope
>
</dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency>

記住,以下程式碼,如果你是單純的複製貼上,那麼你肯定會報錯,有博主自己專案的引數,所以,請複製粘貼後看一下引數(提示什麼的)

然後在專案中建立一個包和一個類,(類放到該包下)取名隨便取

我是這麼取得:

com.XXX.jdpush //包名
jdpush //類名

  • 接下來是在jdpush類的操作
    其實,極光已經給我們整合好了,只需呼叫推送方法即可

    現在在jdpush類中,先進行android的推送(第一個方法)

  • 在jdpush類中,建立一個方法 : jpushAndroid
    別忘了!!!!!! app_key和masterSecret 是必須的
   //極光推送>>Android
   //Map<String, String> parm是我自己傳過來的引數,同學們可以自定義引數
   public static void jpushAndroid(Map<String, String> parm) {
       // 設定好賬號的app_key和masterSecret 
       String appKey = "**************";
       String masterSecret = "************";
       //建立JPushClient(極光推送的例項)
       JPushClient jpushClient = new JPushClient(masterSecret, appKey);
       //推送的關鍵,構造一個payload 
       PushPayload payload = PushPayload.newBuilder()
            .setPlatform(Platform.android())//指定android平臺的使用者
            .setAudience(Audience.all())//你專案中的所有使用者
            .setNotification(Notification.android(parm.get("msg"), "這是title", parm))
            //傳送內容,這裡不要盲目複製貼上,這裡是我從controller層中拿過來的引數)
            .setOptions(Options.newBuilder().setApnsProduction(false).build())
            //這裡是指定開發環境,不用設定也沒關係
            .setMessage(Message.content(parm.get("msg")))//自定義資訊
            .build();

       try {
            PushResult pu = jpushClient.sendPush(payload);  
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }    
   }

然後又在jdpush類中,再進行ios的推送(第二個方法)

  • 在jdpush類中,建立一個方法 : jpushIOS
    又別忘了!!!!!! app_key和masterSecret 是必須的
   //極光推送>>ios
   //Map<String, String> parm是我自己傳過來的引數,同學們可以自定義引數
   public static  void jpushIOS(Map<String, String> parm) {
       // 設定好賬號的app_key和masterSecret是必須的
       String appKey = "*********************";
       String masterSecret = "**********************";

       //建立JPushClient
       JPushClient jpushClient = new JPushClient(masterSecret, appKey);
       PushPayload payload = PushPayload.newBuilder()
            .setPlatform(Platform.ios())//ios平臺的使用者
            .setAudience(Audience.all())//所有使用者
            .setNotification(Notification.newBuilder()
            .addPlatformNotification(IosNotification.newBuilder()
                            .setAlert(parm.get("msg"))
                            .setBadge(+1)
                            .setSound("happy")//這裡是設定提示音(更多可以去官網看看)
                            .addExtras(parm)
                            .build())
                    .build())
            .setOptions(Options.newBuilder().setApnsProduction(false).build())
            .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定義資訊
            .build();

       try {
            PushResult pu = jpushClient.sendPush(payload);

        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }    
   }

PS:

  • 以上只是列出了2種推送的方法,(一般設定安卓和ios就夠了)還有更多(去看看官網)比如推送winPhone平臺,安卓andIos,全部平臺,等等等等,自定義去組合,反正你寫的方法可以呼叫
  • 極光已經整合好了眾多方法,同學們都是可以直接 . 點出來的,比如,想設定環境指定為開發,那麼就在方法裡設定:

.setOptions(Options.newBuilder().setApnsProduction(false).build())


  • 大家可以將app_key和masterSecret 定義為全域性變數,將推送方法定義為靜態,這樣更方便呼叫
  • 如果你還想再設定其他推送的系統引數,那麼,可以去參考,裡面有引數講解

————————————————–

我用的是SSM框架,所以在controller裡面呼叫我寫的推送方法,其他框架呼叫推送方法也一樣

呼叫簡直不要太簡單

controller:

//這是我的新增文章的介面方法
//現在我要新增一篇文章後,進行推送
public Map<String, Object> addArticle() throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
....
//省略文章新增的步驟

//從前端頁面傳個引數過來判斷是否推送
   if((infoMap.get("is_push").toString()).trim().equals("1")){
       //設定推送引數
       //這裡同學們就可以自定義推送引數了
        Map<String, String> parm =new HashMap<String, String>();
        //這是我的文章id
        parm.put("id",(""+id).trim());
        //文章標題
        parm.put("Atitle",(String) infoMap.get("Atitle") );
        //設定提示資訊,內容是文章標題
        parm.put("msg",(String) infoMap.get("Atitle") );
        //呼叫ios的
        Jdpush.jpushIOS(parm);
        //然後呼叫安卓的
        Jdpush.jpushAndroid(parm);
    }
  return result;
}

這樣就推送完了….

童鞋們可能出現的的錯誤

推送後報錯了

Your request params is invalid. Please check them according to error message.
Error response from JPush server. Should review and fix it.
//然後狀態碼是
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 HTTP Status: 400
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Error Code: 1011
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Error Message: cannot find user by this audience
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Msg ID: 4241206476

  • 這種的話不要慌,去看看你的極光開發者服務>>點進去你的應用>>點選推送>>選擇是web|Api下拉框
    這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

應該會看到一條紅色的推送記錄

比如:

這裡寫圖片描述

——這就是傳送失敗了,為什麼呢?提示是:

這裡寫圖片描述

就是說,你當前專案中

沒有使用者!!!

沒有使用者!!!

沒有使用者???

這就很尷尬了
如果你的專案中有使用者,
但是,是你的引數(setAudience)設定錯了,也會也會報錯.

po一條視訊教程(內容比較簡單,試著去理解):

還有要注意的是app_key和masterSecret 是必須的

好惹,講完惹,

最重要的是自學哦

複製貼上需謹慎

(〜 ̄▽ ̄)〜

2017-09-16 補充:

PS:推送所有平臺
注意事項:安卓直接忽略開發環境和生產環境,但是ios對環境敏感哦~~~~
(就是安卓不論生產開發都會推送,但是ios必須指定才能推,預設生產模式)

 //極光推送>>All所有平臺
   public static void jpushAll(Map<String, String> parm) {
       // 設定好賬號的ACCESS_KEY和SECRET_KEY

       //建立JPushClient
       JPushClient jpushClient = new JPushClient(masterSecret, appKey);
       //建立option

       PushPayload payload = PushPayload.newBuilder()
            .setPlatform(Platform.all())  //所有平臺的使用者
            .setAudience(Audience.registrationId(parm.get("RegId")))//registrationId指定使用者
            .setNotification(Notification.newBuilder()
                    .addPlatformNotification(IosNotification.newBuilder()
                            .setAlert(parm.get("msg"))
                            .setBadge(+1)
                            .setSound("happy")
                            .addExtras(parm)
                            .build())
                    .addPlatformNotification(AndroidNotification.newBuilder()
                            .addExtras(parm)
                            .setAlert(parm.get("msg"))
                            .build())
                    .build())
            .setOptions(Options.newBuilder().setApnsProduction(true).build())//指定開發環境
            .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定義資訊
            .build();
       try {
            PushResult pu = jpushClient.sendPush(payload);
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }    
   }

相關推薦

極光>>java SDK服務整合後臺專案

PS:如果你是第一次用推送,那就直接按照我的步驟來,再去看官方文件,這樣,更容易能理解操作流程.還有——-請耐心看 極光文件(java SDK)請參考 步驟一: 上註冊一個賬號 其次,註冊完後登入,選擇極光開發者服務 進去之後,建立

極光】jpush服務開發詳盡過程

package com.weiwend.jdpush.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import jav

JPush極光 Java呼叫伺服器API開發

       極光推送是:使得開發者可以即時地向其應用程式的使用者推送通知或者訊息,與使用者保持互動,從而有效地提高留存率,提升使用者體驗。簡單的說就是通過JPush後臺管理網站進行app訊息的推送。可以讓使用者及時的收到最新的訊息提示。        但是往往有時候需要我

極光 java 服務api demo(不使用官方的sdk

極光推送  java 服務端推送api  demo(不使用官方的sdk)1 極光推送的核心類如下:import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.asse

Java 消息------GoEasy實現服務和web

subscribe rip world 查詢 start easy 需要 註冊 註意 項目中需要消息推送,又想較低開發成本,具體需求:角色用戶在後臺管理頁面發布一個消息,所有用這個系統的用戶無論在哪個頁面都能及時收到他發布的消息,後來我在網上查詢到了一個第三方的免費推送服務

Android開發之第三方JPush極光知識點詳解 學會整合第三方SDK

下面是一些知識點介紹,後期將會帶領大家進行程式碼實戰: 一、Android實現推送方式解決方案: 1、推送方式基礎知識:    在移動網際網路時代以前的手機,如果有事情發生需要通知使用者,則會有一個視窗彈出,將告訴使用者正在發生什麼事情。可能是未接電話

Jpush (極光)自定義聲音(服務寫法)

1.JpushClientUtil package com.liuhuan.service; import cn.jiguang.common.resp.APIConnectionException; import cn.jiguang.common.resp.APIR

如何使用極光java服務向鐳射伺服器進行

第一種:使用官方的sdk直接使用 /** * <pre>專案名稱:bsa-admin-api * 檔名稱:Test.java * 包名:com.bsa.api.jiguang * 建立日期:2018年12月10日下午2:30:19 * Copyright (c

java+maven整合極光服務

       最近有不少想寫想記的東西,可惜最近公司太忙,還有就是我比較懶,一到家裡就不行動了。行了,今天主要是整合極光服務的及時通訊功能,直接記下來好了 我的JAVA專案主要是需要整合極光的推送訊息給android的方,所以可能我只會介紹怎麼給極光推送。

極光JPush java服務程式碼

public void sendNotificationWirhAlias_Android(String title,String notification,String alias){ try { PushPayload payload = PushPayload

使用極光實現分組傳送和服務整合

public class MessagePush { private static final String appKey = "d1c241706d82996e1fcdc2b2"; private static final String masterSecret = "7ee1df1a6

java服務極光

dep obj exc sso asa 錯誤碼 返回 消息通道 port 項目中用到了極光推送 下面寫下筆記 首先引入jar包 下載地址https://docs.jiguang.cn/jpush/resources/(非maven項目的下載地址) <depend

AndroidStudio離線打包MUI集成JPush極光並在java管理

覆蓋 如果 dep record tco mat resource 靜態 pkg 1.AndroidStudio離線打包MUI   如何離線打包請參看上篇隨筆《AndroidStudio離線打包MUI》 2.集成極光推送   官方文檔:https://docs.jig

極光 使用例項 (一)服務

                原文:http://blog.csdn.net/u014733374/article/detail

服務極光之單人

公司業務需要,需要將符合某一條件的資訊推送到他的手機上。之前沒有做過,在網上找了很多文章已經部落格,感覺大部分都是一樣的(官網上down下來的?),沒有看明白。下面是個很小的程式碼: package test; import cn.jiguang.common.resp.A

Android客戶與PHP服務通訊(五)---移植使用極光

概述     上一節備研究了示例工程的框架,本節準備自己建立工程,並將極光推送移植到其上。 建立工程     首先建立一個工程,工程名和應用名為lovelife,包名com.lygk.lovelife     一直“Next”,直到Finish,此時建立工程完畢,如下圖

JAVA SDK 極光後臺DEMO

pom導依賴 <properties> <comLog.version>1.1.1</comLog.version> </properties> <dependenci

騰訊信鴿Java服務

結合Servlet、傳遞JSON資料,實現信鴿Java服務端向Android客戶端(參考這裡)推送資料 環境          伺服器:winserver 2012、eclipse、tomcat          客戶端 :Mac、Android Stud

Android客戶與PHP服務通訊(三)---極光註冊使用

概述     推送訊息的方式有很多,在這裡我選擇了極光推送。本節分為上下兩部分,首先通過註冊極光推送並使用其Demo程式來看一下推送的效果,然後再一步一步的修改到自己的應用上。註冊登入極光推送     開發人員基本上都瞭解使用第三方的庫,很多都需要註冊才能使用,極光推送也不

【轉載】極光 使用例項 (一)服務

最近一直在做後臺開發,但心裡還是總惦記著Android,感覺還是Android有意思。正好專案中要用到極光推送,今天抽空來記錄下這兩天的研究成果。         我們知道IOS有自己的推送服務,但很遺憾Android沒有原生的推送服務,現在有很多第三方的推送服務,比如個推、極光、亞馬遜、百度雲、聚能等。今天