跳转至

活动注册

先决条件

要与注册活动的 API 同步,请确保发出授权令牌(API 密钥)。如果您已经拥有密钥,请请求额外的权限。请参考 Hive 服务器 API > 通知 > 推送 v4 > 身份验证 以查看如何请求和发出授权令牌。

注册活动的 API

基本数据和请求变量

方法 POST
网址 /push/campaigns
部门 字段名称 描述 类型 是否必填
sound 头部 Content-Type application/json;charset=utf-8
授权 bearer {{API KEY}} -
主体 id 编辑活动的必填字段 整数
状态 编辑活动的必填字段 整数
公司 公司
  • gamevil: Com2uS Holdings
  • com2us: Com2uS
  • gcp: Com2uS Platform
字符串 O
公司索引 公司代码(在AppCenter上注册的公司编号) 整数 O
描述 活动的描述 字符串 O
通知 是否发送通知 布尔值 X
类型 发送类型
  • B: 批量推送
  • T: 定向推送
字符串 O
targetingId 定向ID 在定向活动中必填 整数
登记人 姓名 登记人姓名 字符串 X
id 登记人id 字符串 O
预定 本地化 是否考虑当地时间 (一次发送/单独发送) 布尔值 O
startDate 持续发送的时间段 (YYYY-MM-DD) 字符串 O
endDate 字符串 O
time 推送发送的时间 (HH:mm) 字符串 O
repeat 是否持续发送推送 布尔值 O
weekday 除周末外持续发送的日子 整数数组[] X
skip 在持续发送期间跳过发送推送的日期 字符串数组[] X
distribution enable 是否发送分发推送 布尔值 X
interval 分发发送的间隔 整数 X
count 分发发送的数量 整数 X
continents 按选定洲的信息列表 (参考国家代码) 查看下面的CampaignContinent结构示例 CampaignContinent[] O
countries 选定国家的信息 (参考国家代码) 字符串数组[] O
game gameindex 游戏索引 整数 O
serverIds 服务器ID列表 字符串数组[] X
apps[] appindex 应用索引 整数 O
appid 应用ID 字符串 O
默认语言 默认设置语言(参考语言代码 字符串 O
通知 {{LANGUAGE}} 消息信息 查看下面的消息结构示例 消息 X
选项 徽章 推送通知的徽章 整数 X
覆盖 是否覆盖推送 布尔值 X
collapseKey 用于覆盖推送的键值 字符串 X
参与度 用户参与度 字符串 X
评论 评论 字符串 X
groupKey 当用户在 iOS 或 Android 操作系统环境中接收通知时,用于在组中公开通知的组键值。设备操作系统中选择的通知设置默认适用。有关该选项的更多详细信息,请参阅以下文档。 字符串 X
android icon 这是当推送通知出现在用户设备上时公开的图标图像文件名。图像文件应位于/src/main/res/drawable中。有关支持的图像文件格式,请参见这里。如果您想在网络上公开图像而不是图像文件,请在此字段中输入图像 URL,而不是图像文件名。如果此字段留空,将公开应用图标图像。 字符串 X
sound 这是在用户设备上出现推送通知时播放的通知声音文件的名称。您可以指定包含在应用程序包中的声音源文件,声音源文件应位于/src/main/res/raw中。如果此字段留空,将使用系统的默认声音文件。 字符串 X
priority 发送到 Android 设备的消息优先级。此优先级是 FCM 概念,控制消息发送的时机。它可以具有 NORMAL 或 HIGH 的值;默认值为 NORMAL。有关更多信息,请参阅Firebase 指南
  • NORMAL = 数据消息的默认优先级。正常优先级消息在设备不处于睡眠模式时立即发送。当您的设备处于睡眠模式时,为了节省电池,传输可能会延迟,直到设备退出睡眠模式。对于不太紧急的消息,例如新电子邮件通知、保持 UI 同步或后台应用程序数据同步,请选择正常的交付优先级。
  • 高优先级 = FCM 将尝试立即发送高优先级消息,如果必要,FCM 可能会唤醒设备并执行一些有限的处理,包括非常有限的网络访问。高优先级消息通常涉及用户与应用程序或通知的交互。
枚举(NORMAL, HIGH) X
ios 声音 这是在用户设备上出现推送通知时要播放的通知声音源文件的名称。声音文件必须存在于应用容器的 Library/Sounds 或应用的主包中。如果此字段为空,则自动设置为“默认”,并使用用户的 Apple 设备 系统默认声音源。 td> 字符串 X
Note

有关option的更多详细信息,请参阅各自市场的指南。

(该选项字段不适用于Facebook。)

CampaignContinent 结构

部门 字段名称 描述 类型 必需
CampaignContinent 大洲 大洲类型 字符串 O
countries 大洲中国家的代码 字符串[] O

CampaignContinent 示例

[
    {
      "name": "Africa",
      "countries": [
        "Algeria",
        "Angola",
        "Benin",
        "Sudan",
        "Swaziland",
        "Tanzania",
        "Togo",
        "Tunisia",
        "Zambia",
        "Zimbabwe"
      ]
    }
]

消息结构

部门 字段名称 描述 类型 必需
消息 android 标题 标题 字符串
消息 消息 字符串
扩展消息 扩展消息 字符串
图片网址 图片网址 字符串
滚动条 滚动条 字符串
摘要文本 摘要消息 字符串
iOS 标题 标题 字符串
消息 消息 字符串
媒体网址 图片网址 字符串
facebook 标题 标题(在1~30个字母内) 字符串
正文 正文(在10~180个字母内) 字符串
媒体 图片网址 字符串

消息示例

{
"ko": {
      "android": {
        "messageExpanded": "(Ad) TEST(Block: Available in settings)",
        "ticker": "gg",
        "title": "(Ad)test",
        "message": "(Ad) test (Restriction: Available in settings)",
        "summaryText": "",
        "imageUrl": ""
      },
      "ios": {
        "mediaUrl": "",
        "title": "Push",
        "message": "(Ad) TEST (Block: Available in settings)"
      },
      "facebook": {
          "title" : "Title",
          "body" : "Push Message Body",
          "media" : https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg”
      }
    }
}

输出结果

标题 内容类型 application/json;charset=utf-8
UUID {{UUID}}
主体 如果成功,主体为空

响应状态代码

描述
200 成功 (主体为空)
400 错误请求 POST 数据被省略
JSON 格式错误
省略或无效的必需元素
可在主体中附加检查原因消息
401 未授权 请求消息中的授权头被省略或无效
授权令牌(API KEY)未注册
对相关 API 没有访问权限
403 禁止 授权头的授权方案不是 "Bearer"(仅支持 Bearer)
404 未找到 请求 URL 错误
500 服务器内部错误 服务器内部错误
502 错误网关 推送网关服务器过载
网络连接错误
503 服务不可用 API 服务器或授权服务器被冻结

示例代码

活动注册

  • 呼叫
curl -v -L 
-H "Content-Type: application/json"  
-H "Authorization: Bearer {API KEY}" 
-d '{"description":"TEST","status":1,"company":"gcp", "companyIndex" : 3, "type":"B","targetingId":0,"reservation":{"localizing":false,"startDate":"2025-11-06","endDate":"2025-11-06","time":"17:00:00","repeat":false,"periodType":"","weekday":[],"skip":[]},"game":{"gameName":"스탭 바이 스탭","gameindex":592,"serverIds":[],"apps":[{"appindex":20002,"appid":"com.gcp.stepbystep.android.google.global.normal","versions":[]}],"serverAll":true},"distribution":{"enable":false,"interval":0,"count":0},"defaultLanguage":"ko","option":{"badge":1,"engagement":"","overwrite":false,"collapseKey":"0","comment":"","groupKey": "", "android":{"icon":"","sound":"","vibration":1},"ios":{"sound":""}},"timestamp":{"time":0,"date":""},"registrant":{"id":"soollung","name":"박기찬"},"notification":{"ko":{"android":{"title":"TEST","message":"(광고) TEST (수신거부: 설정에서 변경 가능)","messageExpanded":"","ticker":"","summaryText":"","imageUrl":""},"ios":{"title":"TEST","message":"(광고) TEST (수신거부: 설정에서 변경 가능)","mediaUrl":""},"facebook":{"title":"TEST", "body":"TEST MESSAGE BODY", "media": "https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg"}}},"countries":["KR"],"continents":[{"name":"Africa","countries":[]},{"name":"Americas","countries":[]},{"name":"Asia","countries":["South Korea"]},{"name":"Europe","countries":[]},{"name":"Oceania","countries":[]},{"name":"Polar","countries":[]}]}' 
https://sandbox-notification.qpyou.cn/push/campaigns
  • 请求
> POST /push/campaigns HTTP/1.1
> User-Agent: curl/7.29.0
> Host: sandbox-notification.qpyou.cn
> Accept: */*
> Content-Type: application/json
> Authorization: Bearer {API KEY}
> Content-Length: 1314
> Expect: 100-continue
  • 响应
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Content-Length: 1491
< Content-Type: application/json
<: 3d18420b-4cf3-48a8-a3bf-6c9ac6cbe86a
<
{
    "uuid": "3d18420b-4cf3-48a8-a3bf-6c9ac6cbe86a",
    "status": 1,
    "modify": true,
    "id": 532,
    "type": "B",
    "company": "gcp",
    "companyIndex": 3,
    "description": "TEST",
    "targetingId": 0,
    "reservation": {
        "localizing": false,
        "startDate": "2025-11-06",
        "endDate": "2025-11-06",
        "time": "17:00:00",
        "repeat": false
    },
    "distribution": {
        "count": 0,
        "interval": 0,
        "enable": false
    },
    "continents": [
        {
            "name": "Africa",
            "countries": []
        },
        {
            "name": "Americas",
            "countries": []
        },
        {
            "name": "Asia",
            "countries": [
                "South Korea"
            ]
        },
        {
            "name": "Europe",
            "countries": []
        },
        {
            "name": "Oceania",
            "countries": []
        },
        {
            "name": "Polar",
            "countries": []
        }
    ],
    "countries": [
        "KR"
    ],
    "lastEndTime": 1762448400,
    "tasks": {
        "17:00:00": {
            "startTime": 1762448400,
            "endTime": 1762448400,
            "time": "17:00:00",
            "gmtOffset": 32400,
            "zones": [
                "Asia/Seoul"
            ]
        }
    },
    "game": {
        "gameindex": 592,
        "gameName": "Step By Step",
        "apps": [
            {
                "appid": "com.gcp.stepbystep.android.google.global.normal",
                "appindex": 20002
            }
        ]
    },
    "defaultLanguage": "ko",
    "notification": {
        "ko": {
            "android": {
                "messageExpanded": "",
                "ticker": "",
                "summaryText": "",
                "imageUrl": "",
                "title": "TEST",
                "message": "(Ad) TEST (Opt out: can be modified in the settings)"
            },
            "ios": {
                "title": "TEST",
                "message": "(Ad) TEST (Opt out: can be modified in the settings)",
                "mediaUrl": ""
            },
            "facebook": {
                "media": "https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg",
                "title": "TEST",
                "body": "TEST MESSAGE BODY"
            }
        }
    },
    "option": {
        "badge": 1,
        "engagement": "",
        "overwrite": false,
        "collapseKey": "0",
        "comment": "",
        "groupKey": "",
        "android": {
            "icon": "",
            "vibration": "1",
            "sound": ""
        },
        "ios": {
            "sound": ""
        }
    },
    "timestamp": {
        "date": "2023-05-22 15:19:24.726",
        "time": 1684736364726
    },
    "registrant": {
        "name": "Park Ki Chan",
        "id": "soollung"
    },
    "dryRun": false,
    "debug": false
}

活动修改

  • 呼叫
curl -v -L 
-H "Content-Type: application/json"  
-H "Authorization: Bearer {API KEY}" 
-d '{"description":"TEST","status":1,"company":"gcp", "companyIndex" : 3, "type":"B","targetingId":0,"reservation":{"localizing":false,"startDate":"2025-11-06","endDate":"2025-11-06","time":"17:00:00","repeat":false,"periodType":"","weekday":[],"skip":[]},"game":{"gameName":"스탭 바이 스탭","gameindex":592,"serverIds":[],"apps":[{"appindex":20002,"appid":"com.gcp.stepbystep.android.google.global.normal","versions":[]}],"serverAll":true},"distribution":{"enable":false,"interval":0,"count":0},"defaultLanguage":"ko","option":{"badge":1,"engagement":"","overwrite":false,"collapseKey":"0","comment":"","groupKey": "", "android":{"icon":"","sound":"","priority":"high"},"ios":{"sound":""}},"timestamp":{"time":0,"date":""},"registrant":{"id":"soollung","name":"박기찬"},"notification":{"ko":{"android":{"title":"TEST","message":"(광고) TEST (수신거부: 설정에서 변경 가능)","messageExpanded":"","ticker":"","summaryText":"","imageUrl":""},"ios":{"title":"TEST","message":"(광고) TEST (수신거부: 설정에서 변경 가능)","mediaUrl":""},"facebook":{"title":"TEST", "body":"TEST MESSAGE BODY", "media": "https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg"}}},"countries":["KR"],"continents":[{"name":"Africa","countries":[]},{"name":"Americas","countries":[]},{"name":"Asia","countries":["South Korea"]},{"name":"Europe","countries":[]},{"name":"Oceania","countries":[]},{"name":"Polar","countries":[]}]}' 
https://sandbox-notification.qpyou.cn/push/campaigns
  • 请求
> POST /push/campaigns HTTP/1.1
> User-Agent: curl/7.29.0
> Host: sandbox-notification.qpyou.cn
> Accept: */*
> Content-Type: application/json
> Authorization: Bearer {API KEY}
> Content-Length: 1314
> Expect: 100-continue
  • 响应
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Content-Length: 1491
< Content-Type: application/json
< UUID: 65420989-ab96-4587-b19a-195fe13f9086
<
{
    "uuid": "65420989-ab96-4587-b19a-195fe13f9086",
    "status": 1,
    "id": 475,
    "type": "B",
    "company": "gcp",
    "companyIndex": 3,
    "description": "TEST475",
    "targetingId": 0,
    "reservation": {
        "localizing": false,
        "startDate": "2020-11-06",
        "endDate": "2020-11-06",
        "time": "17:00:00",
        "repeat": false
    },
    "distribution": {
        "count": 0,
        "interval": 0,
        "enable": false
    },
    "continents": [{
        "name": "Africa",
        "countries": []
    }, {
        "name": "Americas",
        "countries": []
    }, {
        "name": "Asia",
        "countries": ["South Korea"]
    }, {
        "name": "Europe",
        "countries": []
    }, {
        "name": "Oceania",
        "countries": []
    }, {
        "name": "Polar",
        "countries": []
    }],
    "countries": ["KR"],
    "lastEndTime": 1604682000,
    "tasks": {
        "17:00:00": {
            "startTime": 1604682000,
            "endTime": 1604682000,
            "time": "17:00:00",
            "gmtOffset": 32400,
            "zones": ["Asia/Seoul"]
        }
    },
    "game": {
        "gameindex": 592,
        "gameName": "스탭바이스탭",
        "apps": [{
            "appid": "com.gcp.stepbystep.android.google.global.normal",
            "appindex": 20002
        }]
    },
    "defaultLanguage": "ko",
    "notification": {
        "ko": {
            "android": {
                "title": "TEST",
                "message": "(광고) TEST (수신거부: 설정에서 변경 가능)",
                "messageExpanded": "",
                "ticker": "",
                "summaryText": "",
                "imageUrl": ""
            },
            "ios": {
                "title": "TEST",
                "message": "(광고) TEST (수신거부: 설정에서 변경 가능)",
                "mediaUrl": ""
            },
            "facebook": {
                "title": "TEST",
                "body": "TEST MESSAGE BODY",
                "media": "https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg"
            }
        }
    },
    "option": {
        "badge": 1,
        "engagement": "",
        "overwrite": false,
        "collapseKey": "0",
        "comment": "",
        "android": {
            "icon": "",
            "sound": "",
            "priority": "high"
        },
        "ios": {
            "sound": ""
        },
        "groupKey": "test"
    },
    "timestamp": {
        "date": "2020-03-23 11:03:43.094",
        "time": 1584929023094
    },
    "registrant": {
        "name": "박기찬",
        "id": "soollung"
    },
    "dryRun": false,
    "debug": false
}

国家代码

国家 代码 国家 代码
非洲 安哥拉 AO 马达加斯加 MG
布基纳法索 BF 马里 ML
布隆迪 BI 毛里塔尼亚 MR
贝尔哈 BJ 毛里求斯 MU
博茨瓦纳 BW 马拉维 MW
刚果民主共和国 CD 莫桑比克 MZ
中非共和国 CF 纳米比亚 NA
刚果共和国 CG 尼日尔 NE
象牙海岸 CI 尼日利亚 NG
喀麦隆 CM 留尼旺 RE
佛得角 CV 卢旺达 RW
吉布提 DJ 塞舌尔 SC
阿尔及利亚 DZ 苏丹 SD
埃及 EG 圣赫勒拿 SH
西撒哈拉 EH 塞拉利昂 SL
厄立特里亚 ER 塞内加尔 SN
埃塞俄比亚 ET 索马里 SO
加蓬 GA 南苏丹 SS
加纳 GH 圣多美和普林西比 ST
冈比亚 GM 斯威士兰 SZ
几内亚 GN 乍得 TD
赤道几内亚 GQ 法属南方领地 TF
几内亚比绍 GW 多哥 TG
英属印度洋领地 IO 突尼斯 TN
肯尼亚 KE 坦桑尼亚 TZ
科摩罗 KM 乌干达 UG
利比里亚 LR 马约特 YT
莱索托 LS 南非 ZA
利比亚 LY 赞比亚 ZM
摩洛哥 MA 津巴布韦 ZW
美洲 安提瓜和巴布达 AG 洪都拉斯 HN
安圭拉 AI 海地 HT
阿根廷 AR 牙买加 JM
阿鲁巴 AW 圣基茨和尼维斯 KN
巴巴多斯 BB 开曼群岛 KY
圣巴泰勒米 BL 圣卢西亚 LC
百慕大 BM 圣马丁 MF
玻利维亚 BO 马提尼克 MQ
博内尔、圣尤斯特歇斯和萨巴 BQ 蒙特塞拉特 MS
巴西 BR 墨西哥 MX
巴哈马 BS 尼加拉瓜 NI
伯利兹 BZ 巴拿马 PA
加拿大 CA 秘鲁 PE
智利 CL 圣皮埃尔和密克隆 PM
哥伦比亚 CO 波多黎各 PR
哥斯达黎加 CR 巴拉圭 PY
古巴 CU 苏里南 SR
库拉索 CW 萨尔瓦多 SV
多米尼加 DM 荷兰加勒比区 SX
多米尼加共和国 DO 特克斯和凯科斯群岛 TC
厄瓜多尔 EC 特立尼达和多巴哥 TT
福克兰群岛 FK 美国本土外小岛屿 UM
格林纳达 GD 美国 US
法属圭亚那 GF 乌拉圭 UY
格林兰 GL 圣文森特和格林纳丁斯 VC
瓜德罗普 GP 委内瑞拉 VE
南乔治亚岛和南桑威奇群岛 GS 英属维尔京群岛 VG
危地马拉 GT 美属维尔京群岛 VI
圭亚那 GY
亚洲 阿联酋 AE 黎巴嫩 LB
阿富汗 AF 斯里兰卡 LK
亚美尼亚 AM 缅甸 MM
阿塞拜疆 AZ 蒙古 MN
孟加拉国 BD 澳门 MO
巴林 BH 马尔代夫 MV
文莱 BN 马来西亚 MY
不丹 BT 尼泊尔 NP
中国 CN 阿曼 OM
格鲁吉亚 GE 菲律宾 PH
香港 HK 巴基斯坦 PK
印度尼西亚 ID 巴勒斯坦领土 PS
以色列 IL 卡塔尔 QA
印度 IN 沙特阿拉伯 SA
伊拉克 IQ 新加坡 SG
伊朗 IR 叙利亚 SY
约旦 JO 泰国 TH
日本 JP 塔吉克斯坦 TJ
吉尔吉斯斯坦 KG 东帝汶 TL
柬埔寨 KH 土库曼斯坦 TM
北朝鲜 KP 土耳其 TR
南朝鲜 KR 台湾 TW
科威特 KW 乌兹别克斯坦 UZ
哈萨克斯坦 KZ 越南 VN
老挝 LA 也门 YE
欧洲 安道尔 AD 冰岛 IS
阿尔巴尼亚 AL 意大利 IT
奥地利 AT 泽西岛 JE
奥兰群岛 AX 列支敦士登 LI
波斯尼亚和黑塞哥维那 BA 立陶宛 LT
比利时 BE 卢森堡 LU
保加利亚 BG 拉脱维亚 LV
白俄罗斯 BY 摩纳哥 MC
瑞士 CH 摩尔多瓦 MD
塞浦路斯 CY 黑山 ME
捷克共和国 CZ 马其顿 MK
德国 DE 马耳他 MT
丹麦 DK 荷兰 NL
爱沙尼亚 EE 挪威 NO
西班牙 ES 波兰 PL
芬兰 FI 葡萄牙 PT
法罗群岛 FO 罗马尼亚 RO
法国 FR 塞尔维亚 RS
英国 GB 俄罗斯 RU
根西岛 GG 瑞典 SE
直布罗陀 GI 斯洛文尼亚 SI
希腊 GR 斯瓦尔巴群岛和扬马延岛 SJ
克罗地亚 HR 斯洛伐克 SK
匈牙利 HU 圣马力诺 SM
爱尔兰 IE 乌克兰 UA
马恩岛 IM 梵蒂冈 VA
大洋洲 美属萨摩亚 AS 纽埃 NU
澳大利亚 AU 新西兰 NZ
科科斯群岛 CC 法属波利尼西亚 PF
库克群岛 CK 巴布亚新几内亚 PG
圣诞岛 CX 皮特凯恩 PN
斐济 FJ 帕劳 PW
密克罗尼西亚 FM 所罗门群岛 SB
关岛 GU 托克劳 TK
基里巴斯 KI 汤加 TO
马绍尔群岛 MH 图瓦卢 TV
北马里亚纳群岛 MP 瓦努阿图 VU
新喀里多尼亚 NC 瓦利斯和富图纳 WF
诺福克岛 NF 萨摩亚 WS
瑙鲁 NR
极地 南极洲 AQ

语言代码

语言代码 语言
ko 韩语
zh-hans 中文(简体)
zh-hant 中文(繁体)
en 英语
ja 日语
ar 阿拉伯语
fr 法语
de 德语
es 西班牙语
pt 葡萄牙语
th 泰语
it 意大利语
ru 俄语
id 印尼语
vi 越南语
tr 土耳其语