单推
先决条件¶
要与单推送 API 同步,请确保发出授权令牌(API 密钥)。如果您已经拥有密钥,请请求额外的权限。请参阅 Hive 服务器 API > 通知 > 推送 v4 > 身份验证 以检查如何请求和发出授权令牌。
Note
单次 Puch API 是异步的,并按顺序处理,API 请求 > 令牌查找 > 发送。
API 请求:验证请求数据并返回请求的响应代码。 令牌查找:查找请求数据的推送令牌。可能会出现没有令牌的情况。 * 发送:将数据传输到各个市场的推送服务器(如 ADM、APNS、FCM)。从市场收到的响应显示处理结果。 当在令牌查找和发送步骤中处理失败时,不会将响应传输给调用推送服务器的客户端。 如果您在发送数据后 10 分钟内没有收到推送,请联系 解决方案架构师团队,Com2uS 平台。
URL¶
服务器 | URL |
---|---|
生产 | https://notification.withhive.com |
沙盒 | https://sandbox-notification.withhive.com |
基本数据和请求变量¶
方法 | POST | ||||
---|---|---|---|---|---|
网址 | /push/send | ||||
分类 | 字段名称 | 描述 | 类型 | 必需 | |
头部 | Content-Type | application/json;charset=utf-8 | |||
授权 | bearer {{API KEY}} | ||||
主体 | notice | 是否发送公告通知(默认:'false')
true false 公告和夜间通知是获取用户协议所需的项目。
| 布尔值 | O | |
identifiers | 标识符信息(最多100个)检查标识符结构和下面的示例。 | identifier[] | O | ||
游戏 | gameid | 游戏ID | 字符串 | O | |
appids | AppID列表如果映射的AppID无效,则不发送任何内容。 建议
| 字符串[] | X | ||
enableLocale | 是否启用每种语言的区域设置
true
false | 布尔值 | O | ||
有效负载 | single | 如果enableLocale=false 请求单个字段,请检查下面的消息结构。 | 消息 | O | |
defaultLanguage | 如果enableLocale=true ,则设置为默认语言的值。 | 字符串 | |||
locale {{LANGUAGE}} | 如果enableLocale=true ,则设置为区域字段的值,与单个字段的消息信息相同。 | 消息 | |||
option | 请参阅下面的可选信息。 | 选项 | X |
Note
对于适当的单次推送接收,建议在appids和标识符字段中仅输入一个数据。 + 由于无法指定搜索条件,如果请求包含多个标识符和appids,推送交付可能会延迟。 * 建议为标识符值指定一个高优先级的值,并避免仅使用did值配置标识符。 * 必须避免在游戏字段中仅指定gameid的请求。 + 如果appids字段中没有信息,由于所有包含在gameid中的appids都会被搜索,推送交付可能会延迟。
标识符结构¶
部门 | 字段名称 | 描述 | 类型 | 必需 | |
---|---|---|---|---|---|
标识符 | 标识符 | playerId | 应包含四个标识符中的一个,优先顺序为 playerId、vid、uid 和 did。 | 长整型 | O |
vid | |||||
uid | |||||
did |
标识符示例¶
消息结构¶
类别 | 字段名称 | 描述 | 类型 | 必需 | |
---|---|---|---|---|---|
消息 | android | title | 标题 | 字符串 | O |
message | 正文 | 字符串 | O | ||
messageExpanded | 扩展正文 | 字符串 | O | ||
imageUrl | 图片网址 | 字符串 | X | ||
ticker | 票据 | 字符串 | X | ||
summaryText | 摘要文本 | 字符串 | X | ||
ios | title | 标题 | 字符串 | O | |
message | 正文 | 字符串 | O | ||
mediaUrl | 图片网址 | 字符串 | X |
选项信息¶
类别 | 字段名称 | 描述 | 类型 | 是否必填 | |
---|---|---|---|---|---|
选项 | badge | 接收到推送通知时在应用图标上显示的数字值(默认值:1) | 整数 | X | |
overwrite | 是否在Android上使用推送覆盖功能(默认值:false) | 布尔值 | X | ||
collapseKey | 启用推送覆盖功能时使用的键值(数字的字符串格式:“123”) | 字符串 | X | ||
engagement | 用户参与度 | 字符串 | X | ||
comment | 文本 | 字符串 | X | ||
groupKey | 这是在 iOS 和 Android 设备上接收通知时用于将通知分组在一起的组键值。设备操作系统上设置的通知选项将默认应用。有关选项的更多详细信息,请参阅以下文档。 | 字符串 | X | ||
android | 图标 | 当用户设备收到推送通知时出现的图标图像的文件名。图像文件必须存在于/src/main/res/drawable中。支持的图像文件格式可以在这里找到。 如果您想从网络上显示图像,请在此字段中输入图像的URL,而不是文件名。如果此字段为空,将显示应用程序图标图像。 | 字符串 | X | |
声音 | 当用户设备收到推送通知时播放的通知声音的文件名。您可以指定包含在应用程序包中的声音文件,并且声音文件必须存在于/src/main/res/raw中。如果此字段为空,将使用系统默认声音。 | 字符串 | X | ||
优先级 | 发送到Android设备的消息优先级。此优先级控制消息传递的时机,这是FCM中的一个概念。它可以取值为NORMAL或HIGH,默认值为NORMAL。有关更多详细信息,请参阅Firebase指南。
| enum(NORMAL, HIGH) | X | ||
ios | sound | 用户设备接收到推送通知时将播放的通知声音的文件名。声音文件必须存在于应用程序容器的Library/Sounds或主应用程序包中。如果此字段为空,将自动设置为"default",使用用户Apple设备上的系统默认声音。 | String | X |
输出结果¶
部门 | 字段名称 | 描述 |
---|---|---|
头部 | 内容类型 | application/json;charset=utf-8 |
UUID | {{UUID}} | |
主体 | - | 如果成功,主体为空 |
响应状态代码¶
键 | 值 | 描述 |
---|---|---|
200 | 成功 | (主体为空。) |
400 | 错误请求 | POST 数据被省略。JSON 格式错误。必需元素被省略或无效。 |
401 | 未授权 | 请求消息中的授权头被省略或无效。授权密钥(API KEY)未注册。没有访问相关 API 的权限。 |
403 | 禁止 | 授权头的认证方案不是 "Bearer"。(仅支持 Bearer) |
404 | 未找到 | 请求的 URL 错误。 |
500 | 服务器内部错误 | 服务器内部错误 |
502 | 错误网关 | 推送网关服务器超载。网络连接错误。 |
503 | 服务不可用 | API 服务器或认证服务器被冻结。 |
示例代码¶
-
调用 ("enableLocale":false)
curl -L -v > -d '{"notice":false,"identifiers":[{"vid":19239,"did":300010915}],"game":{"gameid":"com.com2us.hivesdk","appids":["com.com2us.hivesdk.normal.freefull.google.global.android.common"]},"enableLocale":false,"payload":{"single":{"android":{"title":"测试","message":"测试","messageExpanded":"","imageUrl":"","ticker":"","summaryText":""},"ios":{"title":"","message":"","mediaUrl":""}},"option":{"badge":"1","overwrite":false,"collapseKey":"","engagement":"","groupKey": "", "android":{"icon":"","sound":"", "priority": "normal"},"ios":{"sound":""}}}}' > -H "Content-Type: application/json" > -H "Authorization: Bearer {API KEY}" > https://sandbox-notification.qpyou.cn/push/send
-
调用 ("enableLocale":true)
{ "notice": false, "identifiers": [ { "playerId": 30000028045 } ], "game": { "gameid": "com.com2us.hivesdk", "appids": [ "com.com2us.hivesdk.normal.freefull.google.global.android.common", "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal" ] }, "enableLocale": true, "payload": { "defaultLanguage": "en", "locale": { "ko": { "android": { "title": "test_Korean_title", "message": "test_Korean_message" }, "ios": { "title": "test_Korean_title", "message": "test_Korean_message" }, }, "en": { "android": { "title": "test_English title", "message": "test_English message" }, "ios": { "title": "test_English title", "message": "test_English message" }, } }, "option": { "badge": 1, "overwrite": true, "collapseKey": "99", "groupKey": "", "android": { "icon": "GoogleIcon", "sound": "GoogleSound", "priority": "normal" }, "ios": { "sound": "AppleSound" } } } }
Note
建议连续发送呼叫数据,不留任何空格以便服务器立即检查日志。
请求
> POST /push/send HTTP/1.1
> User-Agent: curl/7.29.0
> Host: sandbox-notification.qpyou.cn
> Accept: */*
> Content-Type: application/json
> Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NDE1NzMyOTcsImp0aSI6ImFkbWluaXN0cmF0b3IifQ.23nG9RnbuOwnMbRSebBi2i-Qt_fOfqU_vUKUZ2JJlWU
> Content-Length: 502
- 响应