极光推送>>java SDK服务端集成后台项目
2017-12-22 13:19
645 查看
极光文档(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>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
记住,以下代码,如果你是单纯的复制粘贴,那么你肯定会报错,有博主自己项目的参数,所以,请复制粘贴后看一下参数(提示什么的)
jar包导入完成
然后在项目中创建一个包和一个类,(类放到包下)取名随便取,毕竟开心最重要 ꉂ ೭(˵¯̴͒ꇴ¯̴͒˵)౨”
好吧推荐取名 :
com.weiwend.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(); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
然后又在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(); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
PS:
以上只是列出了2种推送的方法,(一般设置安卓和ios就够了)还有更多(去看看官网)比如推送winPhone平台,安卓andIos,全部平台,等等等等,自定义去组合,反正你写的方法可以调用极光已经集成好了众多方法,同学们都是可以点出来的,比如,想设置环境指定为开发,那么就在方法里设置:
.setOptions(Options.newBuilder().setApnsProduction(false).build())
如果你还想再设置其他推送的系统参数,那么,可以去参考,里面有参数讲解
[ 极光文档Push API v3 ]
我用的是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; }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
这样就推送完了….
童鞋们可能出现的的错误
推送后报错了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一条视频教程(内容比较简单,试着去理解):
[ 极客学院>>极光推送javaSDK集成使用 ]
还有要注意的是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服务端集成后台项目
- 极光推送>>java SDK服务端集成后台项目
- java服务端极光推送消息的集成
- Swift项目集成极光推送SDK
- JAVA SDK 极光推送后台DEMO
- 集成推送(极光+小米+华为)总结(java服务端)
- 集成第三方SDK爬坑总结之极光推送和友盟统计
- 服务端极光推送2-分组推送及服务端集成
- 极光推送SDK集成步骤
- 集成第三方SDK爬坑总结之极光推送和友盟统计
- 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式
- Android之极光推送SDK集成和基础功能的实现
- 使用极光推送实现分组发送和服务端集成
- 安卓集成极光推送SDK基础服务
- 极光推送java服务端
- java sdk 极光推送 安卓,ios
- Java 极光推送 ios,android 服务端
- 集成第三方SDK爬坑总结之极光推送和友盟统计
- java后台,极光推送jpush v3版java示例