进阶使用
通过 POST 请求发送消息
-
地址:
https://notifyme-server.521933.xyz
https://notifyme-server.521933.xyz
不再支持token
+pushType
的发送形式,请使用uuid
发送消息。-
以下地址仍可使用,但不再更新功能,建议尽快更换至新网址。
- URL1:
https://send-notifyme.521933.xyz
- URL2:
https://send.notifyme-f7507.521933.xyz/
- URL3:
https://send1.notifyme-f7507.521933.xyz
- URL1:
-
上述地址不支持的新功能包括:
- URL1 不支持 uuid 发送,通过 URL1 发送的OPPO 推送和魅族消息无法被 NotifyMe 记录(v4.3.1 及之前的版本仍可记录);
- URL2、URL3 不支持 uuid 发送,且不支持除 FCM 以外的其他推送。
-
请求头:
Content-Type:application/json
-
JSON:
{ "data": { "uuid": "CWYMVYWQHoPGXEkh9yP5Nd", "ttl": 86400, "priority": "high", "data": { "title": "NotifyMe!", "body": "This is a test message!", "group": "Messages", "subgroup": "10086", "bigText": false, "iconType": 0, "smallIcon":"smallIcon_0", "largeIcon":"largeIcon_0", "id":"0", "encryption":false, "iv":"UkAjUPykxX1Eu4h7", "invisible":false, "actionType":"0", "action":"", "channel":"quicker_channel", "record":1, "callback":"https://test.example.com", "button": { "button_1": { "actionType": 2, "name": "打开 QQ", "action": "com.tencent.mobileqq" }, "button_2": { "actionType": 5, "name": "复制验证码", "action": "" }, "button_3": { "actionType": 6, "name": "标记为已读", "action": "" } } } } }
JSON 数据说明
uuid
(string):接收消息的设备 UUID。ttl
(int):设备离线时,消息在厂商服务器存储的时间(以秒为单位)。不同推送类型支持的值不同:- FCM:0 ~ 2419200(4 周)。如果要立即发送消息,不在服务器上进行保存,请将其设置为
0
。 - HMS 推送:0 ~ 1296000(15 天)。
- OPPO 推送:0 ~ 864000(10 天)。
- 魅族推送:3600 ~ 259200(1 ~ 72 小时)。
- 极光推送:0 ~ 259200(3天)。
- FCM:0 ~ 2419200(4 周)。如果要立即发送消息,不在服务器上进行保存,请将其设置为
priority
(string):消息优先级。可以取normal
和high
:normal
:应用在前台运行时,消息会被立即传递。当应用在后台运行时,消息传递可能会延迟。high
:即使设备处于低电耗模式(doze模式),FCM 也会立即尝试传递消息。
title
(string):消息标题。body
(string):消息内容。group
(string):消息分组。状态栏及 app 内的消息分组。subgroup
(string):消息二级分组。在group
的基础上再次分组。bigText
(string):消息是否为大文本(即body
在通知栏是否显示多行)。适合消息内容较多,且用户需在状态栏查看所有通知内容的场景。建议在短信转发时设置为true
。iconType
(int)与smallIcon
(string or obj):消息小图标,具体见设置小图标。largeIcon
(string):设置用户自定义的大图标。取值为用户创建大图标时设定的名称。未设置或值不存在时通知无大图标。smallToLarge
(bool):在大图标处显示小图标。用于解决在部分设备上小图标强制显示为应用图标的问题。id
(string):通知的id,新通知会在状态栏覆盖相同的id
的旧通知。取值为任意字符串,如今日新闻
。取值为0
表示App自动设置通知id
,此时任何通知都不会被覆盖。encryption
(bool):是否进行加密。使用时将要发送的title
和body
替换成加密后的字符串,加密方法为AES/CBC/PKCS5Padding
。请使用填入的初始化向量iv
和 App/设置 中的AesKey
进行加密。iv
(string):AES加密的初始化向量。长度为16
字节,用于App解密数据。建议随机生成,以使每条消息使用不同的iv
。invisible
(bool):通知是否可见。设置为true
时,将不会在通知中显示title
和body
的具体内容(仅在 app 内可见)。actionType
(int)与action
(string or obj):通知点击动作。具体见通知点击动作。channel
(string):通知通道。用于自定义通知铃声、振动等。取值为用户在 app 内自定义的通道名称。未设置或取值不存在时,将使用默认通道。record
(float):是否记录记录消息,默认为1
。- 设置为
0
时,app 将不会记录该条消息。设置为负值
时,消息将在 app 内保存该天数后删除,例如-1
表示,消息将在 1 天后删除,起算时间为消息发送时间。 - 若有0.1的小数位(如
1.1
、-1.1
),则表示消息在 app 内默认为已读,小数位不会影响保存天数的计算,例如-1.1
仍表示1天后删除。
- 设置为
callback
(string):回调地址,设备收到消息时将向该地址发送一个带 JSON 数据的 POST 请求。- 发送的 JSON 示例如下:
msgCloudId
(string):消息在服务器端的Id,与响应内容中的相同。timestamp
(string):触发回调时的时间戳。
button
(obj):通知按钮,具体内容见通知按钮。
响应内容
服务器收到消息请求后,会返回 JSON 数据,具体如下:
{
"isSuccess": true,
"result": {
"name": "projects/notifyme-f7507/messages/0:1743608287746841%7f1486f7f9fd7ecd"
},
"msgCloudId":"18102406649711028",
"sendTimestamp":1753119526312
}
isSuccess
(bool):true
表示请求发送成功,false
表示请求发送失败。result
(obj):厂商推送服务器返回的内容。msgCloudId
(string):消息在服务器端的Id,同一条消息,响应内容和回调的msgCloudId
的值相同。sendTimestamp
(long):请求到达服务器时的时间戳。
其他
具体使用见以下应用场景。