【指南】广播推送开发

一、概述

依托融云在即时通讯领域深厚的技术积累及多年稳定可靠的消息推送服务能力,融云决定推出广播推送产品。融云广播推送服务产品重视对推送效果的数据真实性和公开透明,从可推送总人数到实际推送人数、Android / iOS 各自达到率和打开率,全面真实的数据反应,帮助您及时调整运营方案。

二、客户端使用说明

1、SDK 支持

要求使用 2.3.8 及以上版本的融云 SDK,老版本用户需要先升级 SDK 版本后才能从使用。


2、iOS 集成指南

1)开发者在执行融云 SDK 初始化方法 init 后,可以调用 recordLaunchOptionsEvent 接口统计推送点击率,通过 getPushExtraFromLaunchOptions 接口获取推送的自定义附加信息。代码示例如下:

- (BOOL)application:(UIApplication *)application   

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

//开发者自己的业务代码

//初始化融云SDK

[[RCIM sharedRCIM] initWithAppKey:RONGCLOUD_IM_APPKEY];

//开发者自己的业务代码

/**

  * 统计推送打开率

  */

[[RCIMClient sharedRCIMClient] recordLaunchOptionsEvent:launchOptions];

/**

  * 获取融云推送服务扩展字段

  * nil 表示该启动事件不包含来自融云的推送服务

  */

NSDictionary *pushServiceData = [[RCIMClient sharedRCIMClient]  getPushExtraFromLaunchOptions:launchOptions];

if(pushServiceData) {   

NSLog(@"该启动事件包含来自融云的推送服务");

for(id key in [pushServiceData allKeys]) {     

NSLog(@"%@", pushServiceData[key]);   

}else{   

  NSLog(@"该启动事件不包含来自融云的推送服务"); 

}

}

2) 收到远程推送后,可以调用 recordRemoteNotificationEvent 接口统计推送点击率,通过 getPushExtraFromRemoteNotification 接口获取推送的扩展字段。代码示例如下:

- (void)application:(UIApplication *)application 

  didReceiveRemoteNotification:(NSDictionary *)userInfo {

/**

    * 统计推送打开率

    */

[[RCIMClient sharedRCIMClient] recordRemoteNotificationEvent:userInfo];

/**

    * 获取融云推送服务扩展字段

    * nil 表示该启动事件不包含来自融云的推送服务

    */

NSDictionary *pushServiceData = [[RCIMClient sharedRCIMClient] getPushExtraFromRemoteNotification:userInfo];

if(pushServiceData) {       

NSLog(@"该远程推送包含来自融云的推送服务");

for(id key in [pushServiceData allKeys]) {           

NSLog(@"key = %@, value = %@", key, pushServiceData[key]);     

  }   

}else{     

  NSLog(@"该远程推送不包含来自融云的推送服务"); 

  }

}

3、Android 集成指南

1)在 AndroidManifest.xml 文件里面,加上对应 push 统计消息的 url 过滤。以 TestPushActivity 为例如下:

android:name=“.activity.TestPushActivity"

android:launchMode="singleTask"

android:screenOrientation="portrait">

<intent-filter>

<action android:name="android.intent.action.VIEW"/>

<category android:name="android.intent.category.DEFAULT"/>

 <data

    android:host="此处为你的包名"

    android:pathPrefix="/push_message"

    android:scheme="rong" />

</intent-filter>

  </activity>

2)在 TestPushActivity 里可以通过 intent.getData() 方法获取 url 里各数据内容,并根据业务需要进行处理,示例代码如下:

/**

* 当前 Activity 只是演示了一个操作过程,未加载任何 view,

*/

publicclassTestPushActivityextendsActivity{

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);       

Intent intent = getIntent();       

getPushMessage(intent);   

}

@Override

protectedvoidonNewIntent(Intent intent) {

super.onNewIntent(intent);       

getPushMessage(intent);   

}

/**

    * Android push 消息

    */

private  void  getPushMessage(Intent intent) {

if(intent !=null&& intent.getData() !=null&& intent.getData().getScheme().equals("rong")) {

//该条推送消息的内容。

String content = intent.getData().getQueryParameter("pushContent");

//标识该推送消息的唯一 Id。

String id = intent.getData().getQueryParameter("pushId");

//用户自定义参数 json 格式,解析后用户可根据自己定义的 Key 、Value 值进行业务处理。

String extra = intent.getData().getQueryParameter("extra");

//统计通知栏点击事件.

RongIMClient.recordNotificationEvent(id);           

Log.d("TestPushActivity","--content:"+ content +"--id:"+ id +"---extra:"+ extra);       

}   

}

}

url 携带字段说明:

   字段名                                                 描述

pushContent                         该条推送消息的内容。

pushId                                    标识该推送消息的唯一 Id。

extra                                      用户自定义参数 json 格式,解析后用户可根据自己定义的 Key 、Value 值进行业务处理。

三、Server API 广播推送

广播推送可精准及时的向符合条件的应用中用户推送消息,帮助开发者提升用户忠诚度及留存率。广播推送服务包括两个功能:一个是发送广播消息,一个是推送(Push):

广播(Broadcast) 是一种业务概念,是通过后台管理界面或者调用服务端接口,向 App 中的所有用户发送一条消息。

推送(Push) 是一种技术概念,是指从服务端实时发送信息到客户端。

大家概念中的典型推送服务是类似 APNS(Apple Push Notification Service)、GCM(Google Cloud Messaging) 等服务。在国内,由于谷歌服务不能使用,因此您的应用必须使用第三方或者自己研发的服务来推送。

因为融云是使用长连接技术来实现 IM 服务的,和典型的 Push 服务具有相同的长连接机制,所以,很多开发者也会直接使用融云来实现推送功能。

在某些场合,iOS 平台的推送(通过 APNS 的 Push)和远程通知(Remote Notification)表示相同的意思,可以互相替换使用。

1、添加标签方法

为应用中的用户添加标签,如果某用户已经添加了标签,再次对用户添加标签时将覆盖之前设置的标签内容。

方法名:/user/tag/set

签名方法:请参考 通用 API 接口签名规则

URL:https://api.cn.ronghub.com/user/tag/set.[format]

[format] 表示返回格式,可以为 json 或 xml,注意不要带 [ ]。

HTTP 方法:POST

请注意:发送请求时 HTTP Request Header 中的 Content-Type 类型必须为 application/json

示例

HTTP 请求:

POST /user/tag/set.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"userId":"31232","tags":["bj","男"]}

表单参数

 名称              类型            说明

userId           String           用户 Id。(必传)

tags             String[]          用户标签,一个用户最多添加 20 个标签,每个 tags 最大不能超过 40 个字节,标签中不能包含特殊字符。(必传)

返回值

名称               类型             说明

code               int               返回码,200 为正常。

JSON 格式:

{"code":200}

XML 格式:

<xml><code>200</code></xml>

返回值请参考 API 方法返回值说明

2、批量添加标签方法

为应用中的用户批量添加标签,如果某用户已经添加了标签,再次对用户添加标签时将覆盖之前设置的标签内容。

方法名:/user/tag/batch/set

签名方法:请参考 通用 API 接口签名规则

URL:https://api.cn.ronghub.com/user/tag/batch/set.[format]

[format] 表示返回格式,可以为 json 或 xml,注意不要带 [ ]。

HTTP 方法:POST

请注意:发送请求时 HTTP Request Header 中的 Content-Type 类型必须为 application/json

示例

HTTP 请求:

POST /user/tag/batch/set.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"userIds":["id1","id2"],"tags":["bj","男"]}

表单参数

名称            类型               说明

userIds       String[]          用户 Id,一次最多支持 1000 个用户。(必传)

tags             String[]         用户标签,一个用户最多添加 20 个标签,每个 tags 最大不能超过 40 个字节,标签中不能包含特殊字符。(必传)

返回值

名称          类型                说明

code          int                   返回码,200 为正常。

JSON 格式:

{"code":200}

XML 格式:

<xml><code>200</code></xml>

返回值请参考 API 方法返回值说明

3、广播消息方法

此方法与 /message/broadcast 广播消息方法发送机制一样,可选择更多发送条件。 

该功能开发环境下可免费使用。生产环境下,您需要在开发者后台“应用/IM 服务/高级功能设置”中开通公有云专业版后,在“广播消息和推送”中,开启后才能使用。收费详情

方法名:/push

调用频率:推送和广播消息合计每小时只能发送 2 次,每天最多发送 3 次。

签名方法:请参考 通用 API 接口签名规则

URL:https://api.cn.ronghub.com/push.[format]

[format] 表示返回格式,可以为 json 或 xml,注意不要带 [ ]。

HTTP 方法:POST

请注意:发送请求时 HTTP Request Header 中的 Content-Type 类型必须为 application/json,SDK 中会话类型为 SYSTEM

示例

HTTP 请求:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"fromuserid":"fromuseId1","audience":{"tag":["女","年轻"],"tag_or":["北京","上海"],"userid":["123","456"],"is_to_all":false},"message": {"content" :"{\"content\" :\ "1111\", \"extra\":\"aa\"}","objectName":"RC:TxtMsg"},"notification":{"alert": "this  is a push", "ios": {"alert":"override alert","extras": {"id":"1","name":"2" }}," android" : {"alert":"override alert","extras": {"id":"1","name":"2"}}}}

向指定标签推送 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"fromuserid":"fromuseId1","audience":{"tag":["女","年轻","北京" ]}, "message": {"content":"{\"content\":\"1111\",\"extra\":\"aa\"}", "objectName": "RC: TxtMsg" }," notification":{"alert":"this is a push"}}

向指定用户推送 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"fromuserid":"fromuseId1","audience":{"userid":["123", "456"]}," message": {"content":"{\"content\":\"1111\",\"extra\":\"aa\"}"," objectName": "RC:TxtMsg" },"notification":{"alert":"this is a push"}}

向应用内所有用户推送 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"fromuserid":"fromuseId1","audience":{"is_to_all":true}, "message": {"content":"{\"content\":\"1111\",\"extra\":\"aa\"}","objectName":"RC:TxtMsg"} ,"notification":{"alert":"this is a push"}}

iOS、Android 平台显示不同推送内容 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"fromuserid":"fromuseId1","audience":{"is_to_all":true}, "message": {"content":"{\"content\":\"1111\",\"extra\":\"aa\"}","objectName":"RC:TxtMsg"}, "notification":{"alert":"this is a push","ios": {"alert":"iOS 通知显示内容","extras": {"id": "1", "name":"2"}},"android": {"alert":"Android 通知显示内容","extras": {"id":"1","name":"2"}}}}

iOS 平台静默推送 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"fromuserid":"fromuseId1","audience":{"is_to_all":true}, "message":  {"content":"{\"content\":\"1111\",\"extra\":\"aa\"}","objectName":"RC:TxtMsg"}, "notification":{"alert":"this is a push","ios": {"alert":"iOS 通知显示内容", "contentAvailable": 1}, "android": {"alert":"Android 通知显示内容"}}}

表单参数

 名称               类型          说明

platform       String[]        目标操作系统,iOS、Android 最少传递一个。如果需要给两个系统推送消息时,则需要全部填写。(必传)

fromuserid   String          发送人用户 Id。(必传)

audience     String           推送条件,包括: tag、userid、is_to_all。(必传)

tag                String[]        用户标签,每次发送时最多发送 20 个标签,标签之间为 AND 的关系,is_to_all 为 true 时参数无效。(非必传)

tag_or           String[]       用户标签,每次发送时最多发送 20 个标签,标签之间为 OR 的关系,is_to_all 为 true 时参数无效,tag_or 同 tag 参数可以同时存在。(非必传)

userid            String[]        用户 Id,每次发送时最多发送 1000 个用户,如果 tag 和 userid两个条件同时存在时,则以 userid 为准,如果 userid 有值时,则 platform 参数无效,is_to_all 为 true 时参数无效。(非必传)

is_to_all        String          是否全部推送,false 表示按 tag 、tag_or 或 userid 条件推送,true 表示向所有用户推送,tag、tag_or 和 userid 条件无效。(必传)

content           String          发送消息内容,参考融云 Server API 消息类型表.示例说明;如果 objectName 为自定义消息类型,该参数可自定义格式。(必 传)

objectName  String          消息类型,参考融云 Server API 消息类型表.消息标志;可自定义消息类型,长度不超过 32 个字符。(必传)

notification    String           按操作系统类型推送消息内容,如 platform 中设置了给 iOS 和Android  系统推送消息,而在 notification 中只设置了 iOS 的推送内容,则 Android 的推送内容为最初 alert 设置的内容。(非必传)

alert              String            默认推送消息内容,如填写了 iOS 或 Android 下的 alert 时,则推送内容以对应平台系统的 alert 为准。(必传)

ios                 String            设置 iOS 平台下的推送及附加信息。

android         String            设置 Android 平台下的推送及附加信息。

alert               String           iOS 或 Android 不同平台下的推送消息内容,传入后默认的推送消息内容失效,不能为空。(非必传)

contentAvailable  Int        针对 iOS 平台,对 SDK 处于后台暂停状态时为静默推送,是iOS7 之后推出的一种推送方式。 允许应用在收到通知后在后台运行一段代码,且能够马上执行,查看详细。1 表示为开启,0表示为关闭,默认为 0(非必传)

extras             String        iOS 或 Android 不同平台下的附加信息,如果开发者自己需要,可以自己在 App 端进行解析。(非必传)

通知提示状态说明:

1、App 前台可见时 SDK 处于前台状态,这时发送广播消息时,不提示通知。

2、App 处于后台活跃状态或暂停状态,这时发送广播消息时,提示的通知内容,为您设置的 alert 内容。

设置 objectName 推送其他消息类型,详细请参考融云消息类型表.消息标志

返回值

名称             类型            说明

code             int               返回码,200 为正常。

id                  String         广播消息唯一标识。

JSON 格式:

{"code":200,"id":"50whSR6kQiHb7YgFwQzXIb"}

XML 格式:

<xml><code>200</code><id>50whSR6kQiHb7YgFwQzXIb </id>< /xml>

返回值请参考 API 方法返回值说明

4、推送方法

该功能在开发环境下可免费使用。生产环境下,您需要登录开发者后台,在“应用/IM 服务/高级功能设置”中开通公有云专业版后,在“服务器端发送广播消息”中,开启后才能使用。收费详情

方法名:/push

调用频率:推送和广播消息合计每小时只能发送 2 次,每天最多发送 3 次。

签名方法:请参考 通用 API 接口签名规则

URL:https://api.cn.ronghub.com/push.[format]

[format] 表示返回格式,可以为 json 或 xml,注意不要带 [ ]。

HTTP 方法:POST

请注意:发送请求时 HTTP Request Header 中的 Content-Type 类型必须为 application/json,SDK 中会话类型为 PUSH_SERVICE

示例

HTTP 请求:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"tag":["女","年轻"],"tag_or":["北京","上海"],"userid":["123","456"],"is_to_all":false},"notification":{"alert":"this is a push","ios": {"title":"标题", "alert": "override alert","extras": {"id":"1","name":"2"}},"android": {"alert": "override alert","extras": {"id":"1","name":"2"}}}}

向指定标签推送 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"tag":["女","年轻","北京"]},"notification":{"alert": "this is a push"}}

向指定用户推送 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"userid":["123","456"]},"notification":{"alert":"this is a push"}}

向指定应用包名中用户推送 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"packageName":"cn.xxxxxx.xxx"},"notification":{"alert":"this is a push"}}

向应用内所有用户推送 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"is_to_all":true},"notification":{"alert":"this is a push"}}

iOS、Android 平台显示不同推送内容 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"is_to_all":true},"notification":{"alert":"this is a push", "ios":  {"alert":"iOS 平台显示内容","extras": {"id":"1","name":"2"}},"android": {"alert": "Android 平台显示内容","extras": {"id":"1","name":"2"}}}}

设置 iOS 角标数 HTTP 请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"is_to_all":true},"notification":{"alert":"this is a push", "ios": {"alert":"iOS 平台显示内容","badge":2,"extras": {"id":"1","name":"2"}}, "android":  {"alert": "Android 平台显示内容","extras": {"id":"1","name":"2"}}}}

设置 iOS 推送标题请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"is_to_all":true},"notification":{"alert":"this is a push","ios": {"title":"iOS 平台显示标题","alert":"iOS 平台显示内容","extras": {"id":"1", "name":"2"}},"android": {"alert":"Android 平台显示内容","extras": {"id":"1","name":"2"}}}}

设置 iOS 静默推送请求示例:

POST /push.json HTTP/1.1

Host: api.cn.ronghub.com

App-Key: uwd1c0sxdlx2

Nonce:14314

Timestamp:1408706337

Signature:890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/json

{"platform":["ios","android"],"audience":{"is_to_all":true},"notification":{"alert":"this is a push","ios": {"title":"iOS 平台显示标题","alert":"iOS 平台显示内容", "contentAvailable":1}, "android": {"alert":"Android 平台显示内容"}}}

表单参数

 名称           类型              说明

platform     String[]         目标操作系统,iOS、Android 最少传递一个。如果需要给两个系统推送消息时,则需要全部填写。(必传)

audience    String           推送条件,包括:tag 、userid 、packageName 、 is_to_all。(必传)

tag              String[]          用户标签,每次发送时最多发送 20 个标签,标签之间为 AND 的关系,is_to_all 为 true 时参数无效。(非必传)

tag_or         String[]         用户标签,每次发送时最多发送 20 个标签,标签之间为 OR 的关系,is_to_all 为 true 时参数无效,tag_or 同 tag 参数可以同时存在。(非必传)

userid          String[]         用户 Id,每次发送时最多发送 1000 个用户,如果 tag 和 userid两个条件同时存在时,则以 userid 为准,如果 userid 有值时,则platform 参数无效,is_to_all 为 true 时参数无效。(非必传)

packageName String      应用包名,is_to_all 为 true 时,此参数无效。与 tag、tag_or 同时存在时为 And 的关系,向同时满足条件的用户推送。与 userid 条件同时存在时,以 userid 为准进行推送。(非必传)

is_to_all       String            是否全部推送,false 表示按 tag 、tag_or 或 userid 条件推送,true 表示向所有用户推送,tag、tag_or 和 userid 条件无效。(必传)

notification   String           按操作系统类型推送消息内容,如 platform 中设置了给 iOS 和Android 系统推送消息,而在 notification 中只设置了 iOS 的推送内容,则 Android 的推送内容为最初 alert 设置的内容。(必传)

alert              String           notification 下 alert,默认推送消息内容,如填写了 iOS 或 Android 下的 alert 时,则推送内容以对应平台系统的 alert 为准。(必传)

ios                 String           设置 iOS 平台下的推送及附加信息。

android          String          设置 Android 平台下的推送及附加信息。

title                  String         通知栏显示的推送标题,仅针对 iOS 平台,支持 iOS 8.2 及以上版本,参数在 ios 节点下设置,详细可参考“设置 iOS 推送标题请求示例”。(非必传)

contentAvailable  Int          针对 iOS 平台,静默推送是 iOS7 之后推出的一种推送方式。允许应用在收到通知后在后台运行一段代码,且能够马上执行,查看详细。1 表示为开启,0 表示为关闭,默认为 0(非必传)

alert                 String          iOS 或 Android 不同平台下的推送消息内容,传入后默认的推送消息内容失效,不能为空。(非必传)

extras               String          iOS 或 Android 不同平台下的附加信息,如果开发者自己需要,可以自己在 App 端进行解析。(非必传)

badge               int               应用角标,仅针对 iOS 平台;不填时,表示不改变角标数;为0 或负数时,表示 App 角标上的数字清零;否则传相应数字表示把角标数改为指定的数字,最大不超过 9999,参数在 ios 节点下设置,详细可参考“设置 iOS 角标数 HTTP 请求示例”。(非必传)

返回值

名称          类型            说明

code          int             返回码,200 为正常。

id               String       推送唯一标识。

JSON 格式:

{"code":200,"id":"50whSR6kQiHb7YgFwQzXIb"}

XML 格式:

<xml><code>200</code id>50whSR6kQiHb7YgFwQzXIb< /id> </xml>

返回值请参考 API 方法返回值说明

四、开发者站点广播推送

为方便运营人员使用,融云开发者后台提供了广播推送功能。包括:推送和广播消息。

推送:是指从服务端实时发送信息到客户端,与广播消息的区别是客户端会收到远程推送通知,不会收到聊天消息。如图:

广播消息:是向 App 中的用户发送一条消息,与推送的区别是用户在线时客户端会收到聊天消息(如图 1),不在线时会收到远程推送通知,下次上线后会以离线消息方式发送(如图 2) 。

                                                                                 图 1

                                                                             图 2

更多概念解析请参见融云消息与推送概念答疑

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 前段时间,小苏写过一篇关于我成交的租单,结果却没有成功的文章。当时提到原本已经成交的租单,因为事后的一些原因导致业...
    小苏的笔记本阅读 188评论 0 0
  • 我不要你给我买口红,我要你看到一处不错的风景,就想着带我去看看。我不要你有房有车,我要你真的愿意把我规划进你的未来...
    海鱼恋阅读 150评论 0 0
  • 庄周接到妈妈的电话时,是星期天的下午。她匆匆放下笔,从衣柜里挑了一件白底连衣裙。 此时大晴天的阳光斜斜照...
    鲁梨阅读 517评论 1 0