human: 如何处理七牛云的即时通讯推送接口

gpt: [即时通讯](https://developer.qiniu.com/IM) > API 文档 >
[服务端API](https://developer.qiniu.com/IM/api/8094/im-server-api-reference) >
推送接口

#  推送接口

最近更新时间: 2021-06-29 09:50:23

# 推送接口

## 发推送通知

### 基本信息

**Path：** /push/notify

**Method：** POST

**接口描述：**  
发送推送通知需要在管理后台开通推送功能。  
具体请求参数可以参考Model里的定义。  
常用请求格式如下:

  1. 推送文本给所有设备  
{  
“audience”: “all”,  
“message”: {  
“type”: “text”,  
“title”: “this is push title”,  
“body”: “this is push body”  
}  
}

  2. 推送图片给push_token为token1或token2的设备  
{  
“audience”: {“push_token”:[“token1”,“token2”]},  
“message”: {  
“type”: “image”,  
“title”: “this is push title”,  
“body”: “this is push body”,  
“attachment_url”: “https://xxx.com/images/1.jpg”  
}  
}

  3. 推送透传消息给标签为beijing或shanghai的所有设备，透传消息不会展示到通知栏上  
{  
“audience”: {“tag”:[“beijing”,“shanghai”]},  
“message”: {  
“type”: “cmd”,  
“title”: “this is push title”,  
“body”: “this is push body”,  
“ext”: {“key1”: 12345, “key2”: “xxx” }  
}  
}

### 请求参数

**Headers**

参数名称 | 参数值 | 是否必须 | 示例 | 备注  
---|---|---|---|---  
Content-Type | application/json | 是 |  |   
access-token |  | 否 |  | 令牌  
app_id |  | 是 |  | 应用ID  
group_id |  | 否 |  | 仅当access-token为管理员token时，可以设置此字段，表示以此群ID的管理员身份来调用此接口  
user_id |  | 否 |  | 仅当access-token为管理员token时，可以设置此字段，表示以此用户ID的身份来调用此接口  
  
**Body**

名称| 类型| 是否必须| 默认值| 备注| 其他信息  
---|---|---|---|---|---  
audience| object| 非必须| | 推送目标, 不可为空。类型为字符串或JSONObject: "all", 表示发给所有设备 {"tag":["tag1","tag2"]} 表示发给标签为tag1或tag2的设备 {"alias":["alias1","alias2"]} 表示发给别名为alias1或alias2的设备 {"user_id":[111,222]} 表示发给用户ID为111或222的设备 {"push_token":["push_token1","push_token2"]} 表示发给PushToken为push_token1或push_token2的设备 使用标签/别名/用户ID/pushToken推送时，列表长度不能超过500 |   
setting| object| 非必须| | 推送设置, 可为空|   
├─ request_id| string| 非必须| | 请求ID，用于请求去重，如果请求ID以前出现过，则不推送。可为空，为空则不去重。|   
message| object| 非必须| | 推送消息体|   
├─ type| string| 非必须| | 消息类型：text - 文本，image - 图片， cmd - 透传消息。可为空，为空则默认为text| 枚举: text|image|cmd  
├─ title| string| 非必须| | 标题。可为空|   
├─ body| string| 非必须| | 内容。可为空|   
├─ attachment_url| string| 非必须| | 附件地址: 图片/音频/视频的URL地址。可为空。如果是图片地址，需要以jpg/jpeg/png结尾，图片大小需小于1M,推荐876*324px|   
├─ badge| string| 非必须| | 应用角标: 如果为数字，则修改角标为此数字；如果以+开头，表示增加此数字到角标，如"+1", 表示角标数加1;如果为空，默认为"+1"|   
├─ ext| object| 非必须| | 扩展字段:可为空，类型为JSONObject, 例如: {"key1":123, "key2":"value2"}|   
├─ show_begin_time| integer| 非必须| | 定时展示的开始时间戳(秒), 为空时表示立即展示| format: int64  
├─ show_end_time| integer| 非必须| | 定时展示的结束时间戳(秒)，可为空| format: int64  
├─ ios| object| 非必须| | ios平台额外参数，可为空|   
├─ sound| string| 非必须| | 通知提示声音， 可为空|   
├─ content_available| boolean| 非必须| | 对应APNs的content-available，可为空|   
├─ mutable_content| boolean| 非必须| | 对应APNs的mutable-content， 可为空|   
├─ category| string| 非必须| | 对应APNs Payload中的category， 可为空|   
├─ thread_id| string| 非必须| | 对应APNs的thread-id，可为空，通过该属性来对通知进行分组，相同thread-id 的通知归为一组|   
├─ android| object| 非必须| | android平台额外参数，可为空|   
├─ sound| string| 非必须| | 通知提示声音，可为空|   
├─ channel_id| string| 非必须| | 通知栏通道，可为空|   
├─ click_action| string| 非必须| | 点击通知的后续动作: intent 打开应用特定页面; open_app 打开应用首页。可为空| 枚举: intent|open_app  
├─ intent| string| 非必须| | 点击通知打开应用特定页面: 可为空，click_action为intent时不可为空。示例：intent:#Intent;component=包名/activity全路径;S.parm1=value1;S.parm2=value2;end|   
├─ huawei| object| 非必须| | huawei厂商额外参数, 可为空，如果设置，会覆盖Android里的相应属性|   
├─ sound| string| 非必须| | 通知提示声音，可为空|   
├─ channel_id| string| 非必须| | 通知栏通道，可为空|   
├─ click_action| string| 非必须| | 点击通知的后续动作: intent 打开应用特定页面; open_app 打开应用首页。可为空| 枚举: intent|open_app  
├─ intent| string| 非必须| | 点击通知打开应用特定页面: 可为空，click_action为intent时不可为空。示例：intent:#Intent;component=包名/activity全路径;S.parm1=value1;S.parm2=value2;end|   
├─ badge_class| string| 非必须| | 桌面图标对应的应用入口Activity类， 比如 com.test.badge.MainActivity， 可为空|   
├─ xiaomi| object| 非必须| | xiaomi厂商额外参数, 可为空，如果设置，会覆盖Android里的相应属性|   
├─ sound| string| 非必须| | 通知提示声音，可为空|   
├─ channel_id| string| 非必须| | 通知栏通道，可为空|   
├─ click_action| string| 非必须| | 点击通知的后续动作: intent 打开应用特定页面; open_app 打开应用首页。可为空| 枚举: intent|open_app  
├─ intent| string| 非必须| | 点击通知打开应用特定页面: 可为空，click_action为intent时不可为空。示例：intent:#Intent;component=包名/activity全路径;S.parm1=value1;S.parm2=value2;end|   
├─ oppo| object| 非必须| | oppo厂商额外参数, 可为空，如果设置，会覆盖Android里的相应属性|   
├─ sound| string| 非必须| | 通知提示声音，可为空|   
├─ channel_id| string| 非必须| | 通知栏通道，可为空|   
├─ click_action| string| 非必须| | 点击通知的后续动作: intent 打开应用特定页面; open_app 打开应用首页。可为空| 枚举: intent|open_app  
├─ intent| string| 非必须| | 点击通知打开应用特定页面: 可为空，click_action为intent时不可为空。示例：intent:#Intent;component=包名/activity全路径;S.parm1=value1;S.parm2=value2;end|   
├─ vivo| object| 非必须| | vivo厂商额外参数, 可为空，如果设置，会覆盖Android里的相应属性|   
├─ sound| string| 非必须| | 通知提示声音，可为空|   
├─ channel_id| string| 非必须| | 通知栏通道，可为空|   
├─ click_action| string| 非必须| | 点击通知的后续动作: intent 打开应用特定页面; open_app 打开应用首页。可为空| 枚举: intent|open_app  
├─ intent| string| 非必须| | 点击通知打开应用特定页面: 可为空，click_action为intent时不可为空。示例：intent:#Intent;component=包名/activity全路径;S.parm1=value1;S.parm2=value2;end|   
├─ push_mode| integer| 非必须| | 推送模式： 0-正式推送；1-测试推送，不填默认为0| format: int32  
├─ classification| integer| 非必须| | 消息类型 0：运营类消息，1：系统类消息。不填默认为0| format: int32  
├─ flyme| object| 非必须| | 魅族厂商额外参数, 可为空，如果设置，会覆盖Android里的相应属性|   
├─ sound| string| 非必须| | 通知提示声音，可为空|   
├─ channel_id| string| 非必须| | 通知栏通道，可为空|   
├─ click_action| string| 非必须| | 点击通知的后续动作: intent 打开应用特定页面; open_app 打开应用首页。可为空| 枚举: intent|open_app  
├─ intent| string| 非必须| | 点击通知打开应用特定页面: 可为空，click_action为intent时不可为空。示例：intent:#Intent;component=包名/activity全路径;S.parm1=value1;S.parm2=value2;end|   
├─ fcm| object| 非必须| | FCM厂商额外参数, 可为空，如果设置，会覆盖Android里的相应属性|   
├─ sound| string| 非必须| | 通知提示声音，可为空|   
├─ channel_id| string| 非必须| | 通知栏通道，可为空|   
├─ click_action| string| 非必须| | 点击通知的后续动作: intent 打开应用特定页面; open_app 打开应用首页。可为空| 枚举: intent|open_app  
├─ intent| string| 非必须| | 点击通知打开应用特定页面: 可为空，click_action为intent时不可为空。示例：intent:#Intent;component=包名/activity全路径;S.parm1=value1;S.parm2=value2;end|   
  
### 返回数据

名称| 类型| 是否必须| 默认值| 备注| 其他信息  
---|---|---|---|---|---  
code| integer| 非必须| | 返回码，200是成功| format: int32  
data| boolean| 非必须| | 结果数据|   
message| string| 非必须| | 错误信息，如果成功，该项为null|   
  
## 获取推送证书

### 基本信息

**Path：** /push/certificate

**Method：** GET

**接口描述：**

### 请求参数

**Headers**

参数名称 | 参数值 | 是否必须 | 示例 | 备注  
---|---|---|---|---  
access-token |  | 否 |  | 令牌  
app_id |  | 是 |  | 应用ID  
group_id |  | 否 |  | 仅当access-token为管理员token时，可以设置此字段，表示以此群ID的管理员身份来调用此接口  
user_id |  | 否 |  | 仅当access-token为管理员token时，可以设置此字段，表示以此用户ID的身份来调用此接口  
  
**Query**

参数名称 | 是否必须 | 示例 | 备注  
---|---|---|---  
environment | 否 |  | 运行环境， 0 - 开发环境， 1 - 生产环境 , 默认值：1  
provider | 是 |  | 证书提供方, 1-APNS，2-华为，3-小米，4-魅族，5-VIVO， 6-OPPO, 7-FCM  
  
### 返回数据

名称| 类型| 是否必须| 默认值| 备注| 其他信息  
---|---|---|---|---|---  
code| integer| 非必须| | 返回码，200是成功| format: int32  
data| object| 非必须| | 推送证书信息|   
├─ app_id| string| 非必须| | APP ID|   
├─ app_key| string| 非必须| | APP KEY|   
├─ app_secret| string| 非必须| | APP SECRET|   
├─ certificate| string| 非必须| | 证书|   
├─ name| string| 必须| | 证书名称|   
message| string| 非必须| | 错误信息，如果成功，该项为null|   
  
以上内容是否对您有帮助？