个推服务端api使用手册进阶

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

个推服务端api使⽤⼿册进阶
前⾔
上⼀⽚初级⼿册⾥给⼤家演⽰了如何使⽤个推服务端的sdk调⽤个推推送服务的api。

相信许多朋友已经尝试成功了。

但除了能够完成传送消息到⼿机上的基本功能以外,开发者⼀定会有很多定制化的需求。

本篇给⼤家提供⼀些进阶使⽤的tips。

定制化
推送展⽰定制化
个推推送服务的客户端展⽰定制化需求主要通过它的推送模板来实现。

上⼀篇提到,调⽤推送⽅法前需要先构造⼀个template。

『 新建⼀个推送模版,以透传模板为例,透传顾名思义到达客户端后不做任何操作,由app选择处理
其他原⽣模板类型种类很多,⽀持各种客户端展现效果,包括弹框下载、打开链接等等。


TransmissionTemplate template = new TransmissionTemplate();
template.setAppId(appId);
template.setAppkey(appKey);
template.setTransmissionContent("测试⽤的透传⽂本");
template.setTransmissionType(1);
此处我们在⽰例⾥使⽤了TransmissionTemplate。

这是个推的⼀个基本模板类型。

使⽤这个模板,允许⽤户设置内容(如果⼆进制数据可以以base64⽅式转码),由个推推送系统将内容推送⾄APP,开发者⾃⾏对内容进⾏处理和展⽰。

除了这个模板类型以外,个推还提供了以下模板共开发者直接使⽤:
NotificationTemplate # 通知栏模板
在通知栏显⽰⼀条含图标、标题等的通知,⽤户点击后激活您的应⽤
NotificationTemplate template = new NotificationTemplate();
template.setAppId(appId);
template.setAppkey(appKey);
template.setTitle("测试标题"); // 展⽰标题
template.setText("测试⽂本"); // 展⽰⽂本
template.setLogo("logo.png"); // 本地logo
template.setLogoUrl("/xxx.png"); // 外链logo
template.setIsRing(true); // 是否响铃
template.setIsVibrate(true); //是否震动
template.setIsClearable(true); //通知栏⾥是否可被清除
template.setTransmissionType(1); //理解启动应⽤
LinkTemplate # 通知栏—链接模板
在通知栏显⽰⼀条含图标、标题等的通知,⽤户点击可打开您指定的⽹页
除了上⾯的设置以外LinkTemplate需要额外设置⼀个跳转的URL
LinkTemplate template = new LinkTemplate();
template.setUrl("");
NotyPopLoadTemplate # 通知栏—弹框下载模板
在通知栏显⽰⼀条含图标、标题等的通知,⽤户点击后弹出框,⽤户可以选择直接下载应⽤或者取消下载应⽤。

除了appId,appKey以外还需要设置下⾯⼏个值:
NotyPopLoadTemplate template = new NotyPopLoadTemplate();
template.setPopTitle("弹框标题");
template.setPopContent("弹框内容");
template.setPopImage("POP.png");
template.setPopButton1("按钮1");
template.setPopButton2("按钮2");
template.setLoadIcon("下载图标");
template.setLoadTitle("下载标题");
template.setLoadUrl("下载地址");
其他接⼝
除了常⽤的pushMessageToSingle/ pushMessageToList/ pushMessageToApp/ 这三个推送接⼝以外,个推还提供了⼀些额外的⽅便⽤户使⽤和排查问题的接⼝。

getClientIdStatus # 获取客户端在线与否状态
IGtPush push = new IGtPush(url, appKey, masterSecret);
push.getClientIdStatus(appId, cid);
这个接⼝会返回客户端在个推系统⾥的在线状态,个推⾥的在线状态决定了个推系统会给这个⽤户推送这条消息还是帮它缓存到离线库⾥。

stop # 根据taskId停⽌推送任务
IGtPush push = new IGtPush(url, appKey, masterSecret);
push.stop(contentId);
当你发起了⼀个数量巨⼤的群推任务,会花费个推⼀定的时间去帮助你推送完所有的客户端。

期间,你可以调⽤这个接⼝停⽌此次推送任务,还没有收到的客户端将不会再收到这次推送的消息。

回调接⼝
当你调⽤了服务端的api发送完⼀条消息,并收到服务端的返回success_online。

如何确定这条推送是否真的到达了⾃⼰的客户端呢?个推提供了⼀个回调接⼝服务,开发者可以在个推开放者平台上注册⼀个回调URL,这样个推在确认客户端收到消息后,会向开发者填写的回调URL post⼀个http请求。

填写回调URL
回调协议
协议使⽤HTTP POST⽅式,通过调⽤第三⽅预先提供的URL来传递信息。

POST数据的内容采⽤Json格式。

第三⽅返回Json格式的返回信息,表⽰是否成功接收到回执
举例
回执例⼦:
{"sign":"xxxxxxxxxxxxx","msgid":"test-msgid","desc":"test-descmsg","taskid":"test-taskid","appid":"xxxxxxxxxxxxx","code":"400", "cid":"test-cid"}
响应例⼦:
{"code":"0","result":"ok"}
开发者在⾃⼰的服务端处理这个json串即可确定对应的消息推送是否真的到达了客户端。

⼩结
今天介绍的这些tips都是⽐较实⽤的,尽管很多开发者偏爱使⽤TransmissionTemplate来进⾏推送,然后最⼤⾃由的处理推送内容,可以完成很多功能,但是其他模板在特定的应⽤情形下,也能发挥其便捷的优势。

⽐如更新应⽤,完全可以使⽤NotyPopLoadTemplate,只需要少许⼏个设置,就能在客户端完成弹框下载的功能;⽐如消息提⽰,可以直接使⽤NotificationTemplate,完成最基础也最常⽤的客户端收到推送,然后在通知栏提醒⽤户的功能。

回调接⼝也是默默⽆闻但是⾮常实⽤的功能,能使你在需要在确保消息送达的情景下做到百分百的安⼼。

还没有使⽤的开发者们赶快尝试⼀下吧~。

相关文档
最新文档