# 发送设备消息
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南
接口英文名:sendHardwareDeviceMessage
通过该接口向用户发送设备消息。
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/cgi-bin/message/device/subscribe/send?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用
# 第三方调用
本接口支持第三方平台代商家调用。
该接口所属的权限集 id 为:118
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String parameters
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| access_token | string | 是 | 接口调用凭证,可使用 access_token、authorizer_access_token |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| template_id | string | 是 | 所需下发的订阅模板id |
| sn | string | 是 | 设备唯一序列号。由厂商分配,长度不能超过128字节。字符只接受数字,大小写字母,下划线(_)和连字符(-)。 |
| page | string | 是 | 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。 |
| to_openid_list | array | 是 | 接收者(用户)的 openid 列表 |
| miniprogram_state | string | 否 | 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版 |
| modelId | string | 是 | 设备型号 id ,通过注册设备获得。 |
| data | string | 是 | 这是个object,不是string。模板内容,格式形如 { "key1": { "value": "xxx" }, "key2": { "value": "xxx" } } ,value 为枚举值。 |
| lang | string | 是 | 进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | string | 错误信息 |
# 4. 注意事项
调用次数限制:1kw/日。
# 5. 代码示例
请求示例
{
"to_openid_list": [
"OPENID_1",
"OPENID_2"
],
"sn": "XXXXXXX",
"template_id": "TEMPLATE_ID",
"page": "index",
"miniprogram_state": "formal",
"lang": "zh_CN",
"data": {
"time1": {
"value": "2021-09-10 19:00:00"
}
}
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 40037 | invalid template_id | 不合法的 template_id |
| 41030 | invalid page | page路径不正确,需要保证在现网版本小程序中存在,与app.json保持一致 |
| 43101 | user refuse to accept the msg | 用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系 |
| 47003 | argument invalid! | 模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错 |
# 7. 适用范围
本接口暂未明确可调用账号类型,或在业务中根据调用传参自行确定是否可调用,请已实际调用情况为准。