MIUI论坛 下载APP

社区版主

鸭梨山大

Rank: 7Rank: 7Rank: 7

积分
30214
机型
MOTO XT910
签到次数
21
MIUI版本
V7.1.5.0.KXGCNCK
私信

万圣节勋章MIUI 3000万MIUI 2000万1000万用户纪念勋章MIUI 7MIUI五周年MIUI三周年百万壁纸关注微信极客勋章疾风测评勋章关注腾讯微博关注新浪微博MIUI 100周发烧友俱乐部MIUI六周年

[活动通知] 小米应用开发者文档:小米推送服务Server端SDK

[复制链接]
11907 12 |
2013-11-14 21:51 | 来自PC
| |
|
跳转
本帖最后由 Yeatshuai 于 2013-11-14 21:55 编辑

小米推送服务Server端SDK (MiPushServiceSDK for server)



小米推送服务SDK有服务器端和客户端两部分:


服务器端SDK for server1. 如何接入ServerSDK

1.1. 下载并导入SDK到你自己的应用程序项目

  • 在开发者网站上,下载并解压 MiPush_SDK_V1. 1.zip
  • 将Server SDK文件夹下的MiPush_SDK_Sever_1_1.jar 文件和json-simple-1.1.1.jar 文件放入项目工程的 libs目录下
  • 刷新工程,确保文件出现在 libs目录下。如果没有的话请手动添加


1.2. 申请appId, appToken,appSecret

开发者需要登录开发者网站 XXX,申请appId, appToken,appSecret,在给服务器发送消息的时候,需要传入 appSecret

2. 服务端SDK说明

2.1. 开发者可以使用服务端SDK开发定制化工具,用来批量调用API给用户发送MiPush推送消息。它包含下面四个部分:
类名
使用说明
Message
构建要发送的消息体
Sender
向MiPush推送服务发送Message消息
Result
Sender发送消息给服务器之后,服务器返回的结果
Constants
常量定义,可以使用useSandbox()切换到开发服务器环境 (sandbox)
2.1.1. Message
开发者可以用它构建要发送的消息体,就是 MiPush推送服务系统中的消息。 注: Message的实例是不可变对象(immutable),应该由Builder()来构建。
  1. java.lang.Objectcom.xiaomi.xmpush.server .Message
复制代码
属性列表:
类名
属性说明
Builder()
简历Builder对象,用来构造消息
payload(String MessageString)
获得要发送消息的内容messageString
restrictedPackageName(String packageName)
获取app的包名packageName
timeToLive(int seconds)
可选属性。如果用户不在线,设置消息在服务器保存的时间,单位: ms
Demo:
  1. private Message sendMessage() throws Exception {
  2.         String messageString = “This is a message”;
  3.         Message message = new Message.Builder()
  4.                 .payload(messageString)
  5.                 .restrictedPackageName(getContext().getPackageName())
  6.                 .timeToLive(1000) //这个属性可以不写
  7.                 .build();
  8.         return message;
  9. }
复制代码
2.1.2. Sender
向MiPush推送服务发送Message消息
  1. java.lang.Object        com.xiaomi.xmpush.server .Sender
复制代码
方法列表:
API
功能说明
Sender(String appSecretKey)
建立Sender对象,appSecretKey是在开发者网站上注册时生成的
send(Message message, String regID)
根据regID,发送消息到指定设备上
sendToAlias(Message message, String alias)
根据alias,发送消息到指定设备上
broadcast(Message message, String topic)
根据topic,发送消息到指定一组设备上
Demo:
  1. private void sendMessage() throws Exception {
  2.         Sender mSender = new Sender(APP_SECRET_KEY);
  3.         String messageString = “This is a message”;
  4.         Message message = new Message.Builder()
  5.                 .payload(messageString)
  6.                 .restrictedPackageName(getContext().getPackageName())
  7.                 .build();
  8.         mSender.send(message, regID); //根据regID,发送消息到指定设备上
  9. }
  10. private void sendMessageToAlias() throws Exception {
  11.         Sender mSender = new Sender(APP_SECRET_KEY);
  12.         String messageString = “This is a message”;
  13.         String alias = “testAlias”;
  14.         Message message = new Message.Builder()
  15.                 .payload(messageString)
  16.                 .restrictedPackageName(getContext().getPackageName())
  17.                 .build();
  18.         mSender.sendToAlias(message, alias); //根据alias,发送消息到指定设备上
  19. }
  20. private void sendBroadcase() throws Exception {
  21.         Sender mSender = new Sender(APP_SECRET_KEY);
  22.         String messageString = “This is a message”;
  23.         String topic = “testTopic”;
  24.         Message message = new Message.Builder()
  25.                 .payload(messageString)
  26.                 .restrictedPackageName(getContext().getPackageName())
  27.                 .build();
  28.         mSender.broadcast(message, topic); //根据topic,发送消息到指定一组设备上
  29. }
复制代码
2.1.3. Result
Sender发送消息给服务器之后,服务器返回的结果
  1. java.lang.Object        com.xiaomi.xmpush.server .Result
复制代码
方法列表:
API
功能说明
String getMessageId()
消息发送成功后,服务器返回消息的 ID;失败的话,返回 null
ErrorCode getErrorCode()
消息发送失败后,服务器返回错误代码;如果发送成功, result.getErrorCode().toString() 是”Success”
String getReason()
消息发送失败后,服务器返回错误原因的文字描述;如果发送成功,返回 null
JSONObject getData()
消息发送出去之后,服务器返回的所有数据,以 JSON串形式返回
String getData(String key)
获取服务器返回JSON串里面某一个key的value
Demo:   Result对于sendToAlias(),broadcast()和send()使用方式完全一样
  1. private void sendMessage() throws Exception {
  2.         Sender mSender = new Sender(APP_SECRET_KEY);
  3.         String messageString = “This is a message”;
  4.         Message message = new Message.Builder()
  5.                 .payload(messageString)
  6.                 .restrictedPackageName(getContext().getPackageName())
  7.                 .build();
  8.         Result result = mSender.send(message, regID); //Result对于sendToAlias(),broadcast()和
  9.         Log.v("Server response: ", "MessageId: " + result.getMessageId()
  10.                 + " ErrorCode: " + result.getErrorCode().toString()
  11.                 + " Reason: " + result.getReason()
  12.                 + " Data: " + result.getData().toJSONString());

  13. }
复制代码
2.1.4. Constants
系统常量定义
如果需要在开发环境(Sandbox)和正式环境的切换, 可以调用 Constants.useSandbox()切换到开发环境上 使用开发环境 (Sandbox)不会影响到线上的在线用户;开发完成后,再切换到正式环境
  1. java.lang.Object        com.xiaomi.xmpush.server.Constants
复制代码
Demo:
  1. Constants.useSandbox(); //使用开发环境
  2. Constants.useOfficial() ; //使用正式环境
复制代码

2.1.5. ErrorCode
  1. java.lang.Object
  2.         com.xiaomi.xmpush. sdk .ErrorCode
复制代码
收藏2 分享  

已有 1 人评分 经验 理由  

媽儿纸 + 2 精品文章^_^

经验 +2  查看全部评分

主题酷玩组

>>忽略这头衔吧<<

Rank: 6Rank: 6

积分
35999
机型
小米Max-高配全网通版
签到次数
183
MIUI版本
9.6.27
私信

国庆勋章MIUI 3000万MIUI 2000万1000万用户纪念勋章MIUI三周年关注微信关注腾讯微博关注新浪微博

2013-11-14 21:52 | 来自PC
|
支持一下下~

玩机大师

Rank: 4

积分
1095
机型
小米手机2/2S
签到次数
0
MIUI版本
0
私信
2013-12-28 21:05 | 来自PC
|
服务推送是自动推送消息吗

玩机大师

Rank: 4

积分
649
机型
未知设备
签到次数
54
MIUI版本
V7.1.1.0.LHMCNCK
私信
2013-12-29 01:17 | 通过手机发布
|
干嘛的??

玩机大师

Rank: 4

积分
1263
机型
未知设备
签到次数
120
MIUI版本
7.4.10
私信

MIUI 9纪念勋章

2014-1-20 15:01 | 来自PC
|
小米推送,只指针对小米手机?

玩机之皇

Rank: 6Rank: 6

积分
10905
机型
未知设备
签到次数
205
MIUI版本
V10.0.11.0.OEACNFH
私信

MIUI 2000万1000万用户纪念勋章MIUI三周年极客勋章关注微信关注腾讯微博关注新浪微博

2015-4-13 20:48 | 来自PC
|
很想知道目前都有哪些第三方软件使用了小米推送?

玩机小白

Rank: 1

积分
35
机型
0
签到次数
0
MIUI版本
0
私信
2016-3-18 15:18 | 来自PC
|
没有Java版的Server端Demo吗

玩机小白

Rank: 1

积分
35
机型
0
签到次数
0
MIUI版本
0
私信
2016-3-18 15:18 | 来自PC
|
没有Java版Server端Demo吗

玩机小白

Rank: 1

积分
40
机型
小米手机2A
签到次数
0
MIUI版本
4.12.5
私信
2016-4-12 18:07 | 来自PC
|
能否增加设置notification flag的功能

玩机狂人

Rank: 3Rank: 3

积分
214
机型
小米手机2/2S
签到次数
3
MIUI版本
4.12.5
私信
2017-2-23 14:06 | 来自PC
|
没有.net的服务端SDK吗?
快速回复 返回顶部 返回列表