通过主题发送推送通知
注意
该门户网站正在开发中。文档的完整版本请看这里.
要处理主题,需要以下工件:
- project_idproject_id (ID 项目), ss_token (服务令牌) - 这些值可以在开发者控制台中获取。 为此,请转到"Push-通知"部分,在应用程序页面上打开"项目"选项卡。详见推送通知发送部分。
- push_token - 用于订阅主题和取消订阅的设备推送令牌。
- topic - 项目中的主题。
向主题发送推送通知
需要包含Authorization标题:Authorization: Bearer $ss_token。
请求正文
参数 | 类型 | 描述 |
---|---|---|
data | map | 包含" key": value 对的对象value |
notification | object (message.notification) | 适用于所有平台的基本通知模板 |
android | object (message.android) | Android 消息的特殊参数 |
成功响应的正文
参数 | 类型 | 描述 |
---|---|---|
message | text | 推送成功发送的消息 |
错误响应的正文
参数 | 类型 | 描述 |
---|---|---|
code | int | 错误代码 |
status | text | 状态 |
message | text | 详细错误 |
订阅主题的推送通知
需要包含Authorization标题:Authorization: Bearer $ss_token。
请求正文
参数 | 类型 | 描述 |
---|---|---|
push_tokens | array (string) | 需要订阅主题的推送令牌 |
成功响应的正文
参数 | 类型 | 描述 |
---|---|---|
message | text | 订阅成功的消息或存在错误 |
errors | objectarray(令牌的错误体) | 令牌的错误 |
令牌的错误体
参数 | 类型 | 描述 |
---|---|---|
push_token | text | 推送令牌 |
error | object(错误响应的正文) | 错误 |
错误响应的正文
参数 | 类型 | 描述 |
---|---|---|
code | int | 错误代码 |
status | text | 状态 |
message | text | 详细错误 |
取消订阅主题的推送通知
需要包含Authorization标题:Authorization: Bearer $ss_token。
请求正文
参数 | 类型 | 描述 |
---|---|---|
push_tokens | string array | 需要从主题中取消订阅的推送令牌 |
成功响应的正文
参数 | 类型 | 描述 |
---|---|---|
message | text | 订阅成功的消息或存在错误 |
errors | objectarray(令牌的错误体) | 令牌的错误 |
令牌的错误体
参数 | 类型 | 描述 |
---|---|---|
push_token | text | 推送令牌 |
error | object(错误响应的正文) | 错误 |
错误响应的正文
参数 | 类型 | 描述 |
---|---|---|
code | int | 错误代码 |
status | text | 状态 |
message | text | 详细错误 |
通过主题发送推送通知的示例
订阅主题hello
POST \'https://vkpns-topics.rustore.ru/v1/projects/{project_id}/topics/{topic}/batch_subscribe\' HTTP /2Content-Type: application /jsonAuthorization: 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 /2Content-Type: application /jsonAuthorization: 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发送消息hello
POST \'https://vkpns-topics.rustore.ru/v1/projects/Lpvk29a2Al2P6tWu-a-aN3PKwO6-qvXZ/topics/hello/publish\' HTTP /2Content-Type: application /jsonAuthorization: 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\"}