自定义原生推送
将自定义原生推送通知提供商集成为您的运营商 API 的一部分
Fast Tracks 支持 Firebase 作为原生推送通知提供商,如果您的业务需要一个不在支持的提供商列表中的提供商,那么您可以构建此 API。
Fast Track 原生推送通知服务
Fast Track 原生推送通知服务可以配置为向下面列出的运营商 API 端点发送原生推送通知请求,这允许运营商管理原生推送通知提供商。它支持发送消息和获取投递状态。发送功能支持单个和批量原生推送通知请求。
以下端点可以作为您运营商 API 的一部分来构建:
⬆️ POST /channels/push/single
⬆️ POST /channels/push/batch
然后运营商可以将这些请求转发给原生推送通知提供商进行处理,并返回相应的响应。
API 格式和响应需要按照下面概述的格式进行格式化
重要的是,下面概述的 "meta" 数据需要通过 Webhook 或轮询的方式发送回 Fast Track,以便正确存储转化数据。请参考显示的示例和下面的表格以获得进一步的说明。
前提条件
- 如果需要考虑任何速率限制,请告知 Fast Track。(如果您计划实施速率限制,请提前联系 Fast Track,以便我们可以指导您支持的实施方式)
- 如果需要考虑任何批量最大值,请告知 Fast Track。
- 向 Fast Track 提供集成提供商所需的任何特定凭据(如果需要)
发送原生推送通知(单个)
单个原生推送通知发送请求将在向 API 的单独请求中包含每个单独原生推送通知的数据。
端点实现
按照以下格式实现端点,以支持通过 API 进行单个发送原生推送通知。
⬆️ POST <operator-api-endpoint-url>/channels/push/single
请求标头
发送请求的标头包含一个"X-Api-Key",这是在端点处验证 API 调用所需的令牌。此令牌需要传递给 Fast Track 以便进行这些请求。
请求正文架构
请参考以下 Fast Track 发送的单个原生推送通知请求的示例。每个字段的描述列在下面的表格中。
顶级字段
| 键 | 类型 | 描述 |
|---|---|---|
activity * | object | 活动上下文对象 — 见下面的子表格 |
title * | string | 推送通知标题 |
body * | string | 推送通知正文文本 |
image_url | string | 要在通知中显示的图像的 URL |
android | object | Android 特定配置 — 见下面的 Android 字段。如果不使用则省略 |
ios | object | iOS 特定配置 — 见下面的 iOS 字段。如果不使用则省略 |
web | object | Web 推送特定配置 — 见下面的 Web 字段。如果不使用则省略 |
meta | object | 在 Fast Track CRM 活动中定义的自定义键值对 |
activity 字段
| 键 | 类型 | 描述 |
|---|---|---|
activity.id * | integer | 原生推送通知的唯一标识符 |
activity.brand_id * | integer | Fast Track 上品牌的唯一标识符 |
activity.user_id * | string | 玩家的唯一标识符 |
activity.activity_id * | integer | 在 Fast Track 中设置的活动的唯一标识符 |
activity.action_group_id * | integer | 原生推送通知来源于 Fast Track 的动作组的唯一标识符 |
activity.trigger_hash * | string | 触发器哈希 |
activity.action_id * | integer | 来自 Fast Track 的单个动作的唯一标识符 |
activity.origin | string | 活动的可选来源标签 |
android 字段 — 全部为可选
| 键 | 类型 | 描述 |
|---|---|---|
priority | string | 消息投递优先级 |
ttl | string | 消息的生存时间持续时间 |
collapse_key | string | 用于折叠待处理消息的键 |
restricted_package_name | string | 目标 Android 包名 |
icon | string | 通知图标资源名称 |
color_rgb | string | 十六进制格式的通知强调色 |
sound | string | 通知声音 |
tag | string | 用于替换现有通知的标签 |
click_action | string | 点击通知时触发的动作 |
body_loc_key | string | 正文文本的本地化键 |
body_loc_arcs | array of strings | body_loc_key 的替换值 |
title_loc_keys | string | 标题的本地化键 |
title_loc_args | array of strings | title_loc_key 的替换值 |
channel_id | string | Android 通知渠道标识符 |
ios 字段 — 全部为可选
| 键 | 类型 | 描述 |
|---|---|---|
badge | string | 应用图标徽章计数 |
category | string | 通知类别标识符 |
thread_id | string | 用于分组通知的线程标识符 |
sub_title | string | 通知副标题 |
loc_key | string | 正文文本的本地化键 |
loc_args | array of strings | loc_key 的替换值 |
title_loc_key | string | 标题的本地化键 |
title_loc_args | array of strings | title_loc_key 的替换值 |
sub_title_loc_key | string | 副标题的本地化键 |
sub_title_loc_args | array of strings | sub_title_loc_key 的替换值 |
action_loc_key | string | 动作按钮标签的本地化键 |
launch_image | string | 应用打开时显示的启动图像文件名 |
web 字段 — 全部为可选
| 键 | 类型 | 描述 |
|---|---|---|
icon | string | 通知图标的 URL |
badge | string | 徽章图标的 URL |
dir | string | 文本方向。值:ltr | rtl | auto |
lang | string | 通知语言标签(例如 en) |
renotify | string | 是否在替换现有通知后通知用户 |
require_interaction | string | 通知是否应该保持到用户与之交互为止 |
silent | string | 通知是否应该静默 |
tag | string | 用于替换现有通知的标签 |
timestamp | integer | 表示通知时间的 Unix 时间戳 |
vibrate | array of strings | 振动模式,以毫秒为单位的持续时间数组 |
link | string | 点击通知时要打开的 URL |
预期响应
运营商 API 应该为每个单独的原生推送通知消息分别返回响应,以避免不相关的原生推送通知数据存储。
成功 HTTP 200-299 JSON 响应
push_id 将是由运营商 API 生成的唯一标识符,它允许 Fast Track 识别该特定的原生推送通知消息,以便在发送后更新其投递状态。
错误 非 200 响应 JSON 响应
错误响应通常与 HTTP 状态码 400s 或 500s 相关联。响应应该包含一个"error"字段,其中包含描述以显示出了什么问题并协助故障排除。
来自运营商 API 的响应将根据 HTTP 状态码的类别进行不同的处理。下表概述了 HTTP 状态如何分别处理。
HTTP 状态码 | 描述 |