配置格式appkeymasterappkey secret 原理是什么意思

极光JPush插件使用流程ionic(2)
视频地址:
第一步:登录或注册一个极光账户
第二步:在极光中创建应用
登录后,会显示如下页面,请在此页面创建应用或者选择应用(如果没有创建应用,需要创建一个应用,来关联项目)。
点击“创建应用”会进入如下页面
创建好应用后会进入应用详情页面,如下图所示:
第三步,在平台服务端配置极光推送参数
需修改WeX5平台服务端的极光推送参数。
找到apache-tomcat\webapps\baas\WEB-INF下的jpush.config.xml文件,打开编辑。
将极光推送应用详情里的AppKey和MasterSecret分别粘贴至对应参数里。
apnsProduction参数对应极光推送里应用的iOS配置是开发环境还是生产环境,false是开发环境,true是生产环境。
第四步:在WeX5中创建APP
选择Native下选择创建APP,编辑本地APP设置,进行打包。
注意事项:
1)应用包名必须与极光推送应用里的应用包名一致。
2)配置Android证书信息:打Android的包必须√选上Android证书项,输入Android证书密码(平台默认带的Android证书密码为123456),如选择新生成证书文件android.keystore,会根据你所输入的开发者相关信息和证书密码,重新生成Android证书。
3)配置iOS证书信息:需要根据在极光推送应用里配置的是开发环境还是生产环境,在这里√选对应的选项。
如果极光推送应用里配置的是开发环境,需要√选“iOS开发证书”,输入证书密码(P12文件的密码),然后选择P12文件ios.developer.p12和APP证书ios.developer.mobileprovision。(证书文件名称没有要求,平台会自动将文件名称修改为标准的并拷贝至生成APP的文件夹下)
如果极光推送应用里配置的是生产环境,需要√选“iOS发布证书”,输入证书密码(P12文件的密码),然后选择P12文件ios.distribution.p12和APP证书ios. distribution.mobileprovision。
4)选择打包的本地插件:平台默认会根据所选择的资源把所需要的插件自动选择上。但配置极光推送还需要配置相关的参数,下拉找到极光推送或者输入“jpush”即可查到极光推送插件,点击打开参数配置,将之前记录的极光推送应用中的appkey的值粘贴到属性值框内即可。
第五步,应用的java代码
APP应用的java代码提供通用的示例,详见apache-tomcat\webapps\baas\src\com\justep\jpush\JPushServlet.java文件。根据应用需要对JPushServlet.java文件中的代码进行修改即可。
本文由WeX5君整理,WeX5一款开源免费的
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:326次
排名:千里之外【转载】极光推送 使用实例 (一)服务端 - 博客频道 - CSDN.NET
陕西易唐云网智能科技有限公司
可以看到上面我们推送平台设置的是所有平台,Audience设置为all(所有用户),这里key值和masterSecret值放在servlet中了。servlet很简单,只要传入两个key值,调用该方法就可以[java]&最后来看下运行的结果,可以看到,提交数据是以json格式。如果返回{"msg_id":,"sendno":}这样数据说明推送已经成功发送[java]&源码分析:&JPushClient jpushClient = new JPushClient(masterSecret, appKey, 3);实际上是实例化了一下三个类[java]&PushPayload payload = buildPushObject_all_all_alert();,PushPayload类里包含了传递和返回的所有数据[java]&&PushResult result = jpushClient.sendPush(payload);可以看到就是sendPost方法,然后接受返回的数据[java]&另外我专门找了下sendNo如何生成的,其实就是随机生成的一个数字[java]&[java]&大家有兴趣也可以详细看一下代码的实现.& & & & &刚开始值直接下载的demo运行,一直提示Audience没有对应的用户,是引文Audience设置了别名alias,而用户里面并没有设置对应的alias,所以找不到对应的用户。最后我们来看一张图,再深入理解下极光推送的原理
xuexiiphone
排名:第15643名
(14)(31)(2)(1)(2)(4)(4)(5)(19)(3)(2)(4)(31)(3)(2)(20)(8)(7)(1)(5)(1)(2)(1)(1)(1)(6)(10)(4)(1)(5)首先你需要在个推开放着平台上注册你的应用,以及获得以下几个必要的值APPID |APPKEY | MASTERSECRET,本文假设你已经完成上述步骤以及完成客户端SDK的集成。
个推服务端api的原理非常简单,组装一个对象,塞进去需要的值,然后编码一下通过http请求发送到个推的推送服务器上,后面的复杂的推送流程就全权交给个推服务器了。当然尽管原理非常简单,个推服务端api还是做了一些封装,最大限度节省用户工作量,比如组装对象设置特定的数据结构并编码,以及一些额外参数以完成版本的向后兼容等动作。
个推服务端sdk有多种语言支持,JAVA / Python / C# / PHP / GoLang等等,本文以JAVA版本为例介绍使用方法。
首先需要引入服务端sdk,也就是下面几个jar包,下载地址在个推官网上有
看名字很好理解这些jar包的作用,对于前三个commons开头的,codec是用来编码的,httpclient是用来构造http请求的,logging处理日志的;带sdk的三个jar自然是个推封装的组装请求的逻辑,以及提供对用户开放的使用接口;最后两个是用到的数据结构json和protobuf。
单推&&推送指定客户端推送IPushResult pushMessageToSingle(SingleMessage message, Target target)业务场景:一般适用于指定某个特定用户的推送,比如你要告诉某个用户他租的域名再不续费就要到期啦,或者有个好友@你啦,这种和独立用户紧密相关的个人消息。
群推&&批量指定客户端推送IPushResult pushMessageToList(String contentId, List targetList)业务场景:一般适用于为某些用户推送消息的场景,比如你提取了一批今天生日的用户列表,给他们发送生日祝福等。
群推&&指定应用名称全客户端推送IPushResult pushMessageToApp(AppMessage message)业务场景:一般适用为自己应用的所有用户推送同一条消息,比如今年2.14情人节,本店全场5折起之类的消息。
当然以上提到的业务场景只是暂时想到的,你完全可以套用到自己的业务场景里,组合使用各个接口,完成更多元的功能。
各个接口使用方式大同小异,如果理解了原理应该很容易融会贯通。我将结合代码,以单推&&toSingle接口来讲解使用方法。
首先定义一些常量,我们应用的appId,appkey等值private static String appId = "aK6jeksP5C7CsjSSEqLAA3";private static String appKey = "tpDVam96sY8pxhwBupJ462";private static String masterSecret = "TBokfpttQJ6aHIhBE9y867";private static String cid = "ce018bbfd0d6fb448bfcb23";private static String url = "";
新建一个IGtPush实例,传入调用接口网址,appkey和masterSecretIGtPush push = new IGtPush(url, appKey, masterSecret);
新建一个消息类型,单推一个用户的话,使用SingleMessage除了SingleMessage外还有ListMessage和AppMessage分别对应三个推送接口SingleMessage message = new SingleMessage();
新建一个推送模版,已透传模板为例,透传顾名思义到达客户端后不做任何操作,由app选择处理其他原生模板类型种类很多,支持各种客户端展现效果,包括弹框下载、打开链接等等。模板里也可以设置响铃震动等效果。TransmissionTemplate template = new TransmissionTemplate();template.setAppId(appId);template.setAppkey(appKey);template.setTransmissionContent("测试用的透传文本");template.setTransmissionType(1);
模板设置好后塞进message里,同时可以配置这条message是否支持离线,以及过期时间等,单位毫秒若设置离线,个推推送系统会为当前不在线的用户缓存离线消息,个推现在支持为每个用户缓存多条离线消息,离线时间最多三天,三天后会删除该条离线消息message.setData(template);message.setOffline(true);message.setOfflineExpireTime(1800 * 1000);
新建一个推送目标,填入appid和clientId单推情况下只能设置一个推送目标,toList群推时,可以设置多个目标,目前建议一批设置50个左右。Target target = new Target();target.setAppId(appId);target.setClientId(cid);
调用IGtPush实例的toSingle接口,参数就是上面我们配置的message和targetIPushResult result = push.pushMessageToSingle(message, target);String response = result.getResponse().toString();System.out.println("返回值:" + response);
推送选错接口个推服务端adk提供给开发者三个推送接口:pushMessageToSingle/ pushMessageToList/ pushMessageToApp。从命名来看也容易区分,分别是推送单个用户,一批用户,一个应用的全部用户。对于每个接口,个推服务端的处理逻辑不尽相同,在性能上也有差别。一般来说推送性能是pushMessageToApp & pushMessageToList & pushMessageToSingle。其中ToList和ToSingle的使用频率最高。有些开发者在ToList的场景里选用ToSingle接口,这样就会明显影响推送效率,ToSingle是适合单推特定用户的场景,如果推送内容相同,将推送的对象集合起来,调用ToList接口,可以明显提升性能。但是对于适合单推的场景使用ToList又会明显降低性能,因为如果每次推送内容不同。调用ToList之前都需要调用getContentId上传消息体,这样至少从http请求次数来说,已经不合算了。
推To List接口列表太大ToList的性能更高在某个方面来说是因为其一次上传了更多的clientId。但是我们不建议一批列表里放太多的clientId,把鸡蛋放在一个篮子里是有风险的。而且从另一方面来说,过于巨大的消息体可能会在各个层面出现意料之外的异常。目前我们建议一批列表里放置不超过100个clientId。这样100万的用户,你需要调用一万次toList接口。
频繁调用getContentId在调用ToList之前,需要先调用getContentId上传推送消息体到个推服务器并获取一个contentId。后续调用toList只需要上传这个contentId和clientId列表就行。这意味着,如果你需要给100万的用户推送相同内容的消息,每次调用ToList发送100个,那就需要循环调用1万次ToList接口。而这中间,无需再调用getContentId!只需要复用同一个contentId!因为他们的推送消息体是一样的。这里经常会有开发者没有注意,每次都调用一次getContentId再去调用toList接口。这样对推送性能会造成巨大损失,因为你不仅double了http请求次数,而且getContentId相对来说在个推服务器上也是一个耗时操作。因此,如果你现在正不小心这样错误使用着个推的服务端api,请赶快调整,飞一样的性能提升肯定会让你眼前一亮的。
阅读(...) 评论()

我要回帖

更多关于 生成appkey appsecret 的文章

 

随机推荐