按主题发送推送通知 (API)
用于按主题发送推送通知的 API
操作主题需要以下凭据。
project_id(项目 ID)、ss_token(服务令牌) —— 这些值可以在开发者控制台中获取。 为此,需要进入推送通知部分,并在应用页面上打开项目选项卡。 详情请参阅发送推送通知部分。push_token—— 用于订阅或取消订阅主题推送的设备推送令牌。topic—— 项目中的主题。
向主题发送推送通知
信息
需要包含 Authorization 请求头:Authorization: Bearer $ss_token。
请求体
| 参数 | 类型 | 描述 |
|---|---|---|
data | map | 包含 "key": value 键值对的对象。 |
notification | object (message.notification) | 适用于所有平台的通知基础模板。 |
android | object (message.android) | 消息的 Android 专用参数。 |
成功响应体
| 参数 | 类型 | 描述 |
|---|---|---|
message | text | 推送发送成功的消息。 |
错误响应体
| 参数 | 类型 | 描述 |
|---|---|---|
code | number | 错误代码。 |
status | text | 状态。 |
message | text | 详细错误信息。 |
订阅主题推送通知
信息
需要包含 Authorization 请求头:Authorization: Bearer $ss_token。
请求体
| 参数 | 类型 | 描述 |
|---|---|---|
push_tokens | array (string) | 需要订阅主题的推送令牌。 |
成功响应体
| 参数 | 类型 | 描述 |
|---|---|---|
message | text | 订阅成功或存在错误的消息。 |
errors | object array (令牌错误体) | 令牌相关的错误。 |
令 牌错误体
| 参数 | 类型 | 描述 |
|---|---|---|
push_token | text | 推送令牌。 |
error | object (错误响应体) | 错误。 |
错误响应体
| 参数 | 类型 | 描述 |
|---|---|---|
code | number | 错误代码。 |
status | text | 状态。 |
message | text | 详细错误信息。 |
取消订阅主题推送通知
信息
需要包含 Authorization 请求头:Authorization: Bearer $ss_token。
请求体
| 参数 | 类型 | 描述 |
|---|---|---|
push_tokens | string array | 需要取消订阅主题的推送令牌。 |
成功响应体
| 参数 | 类型 | 描述 |
|---|---|---|
message | text | 订阅成功或存在错误的消息。 |
errors | object array (令牌错误体) | 令牌相关的错误。 |
令牌错误体
| 参数 | 类型 | 描述 |
|---|---|---|
push_token | text | 推送令牌。 |
error | object (错误响应体) | 错误。 |
错误响应体
| 参数 | 类型 | 描述 |
|---|---|---|
code | number | 错误代码。 |
status | text | 状态。 |
message | text | 详细错误信息。 |
按主题发送推送通知的示例
订阅 hello 主题
请求
POST 'https://vkpns-topics.rustore.ru/v1/projects/{project_id}/topics/{topic}/batch_subscribe' HTTP /2
Content-Type: application /json
Authorization: Bearer $ss_token
{
"push_tokens" : [
"kHrfTow3AjqdgUeCJLwbIHd7c0......",
"9mbJVS0-2e0cCcIx7X5nxMIgp8......"
]
}
成功响应
HTTP/ 2 200
{
"message" : "success"
}
部分成功响应
HTTP/ 2 200
{
"message" : "1 error(s)",
"errors" : [
{
"push_token" : "9mbJVS0-2e0cCcIx7X5nxMIgp8......",
"error" : {
"code" : 1001 ,
"status" : "FORBIDDEN",
"message" : "s2s token invalid"
}
}
]
}
取消订阅 hello 主题
请求
POST 'https://vkpns-topics.rustore.ru/v1/projects/{project_id}/topics/{topic}/batch_unsubscribe' HTTP /2
Content-Type: application /json
Authorization: Bearer $ss_token
{
"push_tokens" : [
"kHrfTow3AjqdgUeCJLwbIHd7c0......",
"9mbJVS0-2e0cCcIx7X5nxMIgp8......"
]
}
成功响应
HTTP/ 2 200
{
"message" : "success"
}
部分成功响应
HTTP/ 2 200
{
"message" : "1 error(s)",
"errors" : [
{
"push_token" : "9mbJVS0-2e0cCcIx7X5nxMIgp8......",
"error" : {
"code" : 1001 ,
"status" : "FORBIDDEN",
"message" : "s2s token invalid"
}
}
]
}
向 hello 主题发送消息
请求
POST 'https://vkpns-topics.rustore.ru/v1/projects/Lpvk29a2Al2P6tWu-a-aN3PKwO6-qvXZ/topics/hello/publish' HTTP /2
Content-Type: application /json
Authorization: Bearer $ss_token
{
"message" : {
"notification" :{
"body" : "This is a notification message!",
"title" : "Message",
"image" : "https://image-hosting.org/284239234.jpeg"
}
}
}
成功响应
HTTP/ 2 200
{
"message" : "payload has been successfully published to topic hello"
}
BAD_REQUEST 错误示例
HTTP/ 2 400
{
"code" : 2000 ,
"status" : "BAD_REQUEST",
"message" : "failed to parse request: invalid character 's' after object key:value pair"
}
FORBIDDEN 错误示例
HTTP/ 2 403
{
"code" : 1001 ,
"status" : "FORBIDDEN",
"message" : "s2s token invalid"
}