消息 API
基础信息
使用限制
提供以接口方式批量发送消息。用户可以通过接口传入 uniqueId 列表,列表大小限制为 200,每个小程序每秒可发送的消息条数限制为 200 条(默认值,如需调整,请联系小程序平台)。
提供以文件方式的发送消息,该功能需申请。该功能为异步处理,任务存在延时(50w 数据大约延时 5 分钟)
使用说明
消息平台的 API 参考主要介绍接口的请求语法、相关参数含义以及请求和返回示例。
错误码
| code | message | 说明 | 
|---|---|---|
| 2 | 请求过快,被限流了! | 每个小程序每秒可发送的消息条数限制为 200 条 | 
| 70001 | 小程序在消息黑名单中 | 小程序的平台不允许违规小程序发送消息 | 
| 70002 | 注册小程序消息信息失败 | 注册小程序消息信息失败 | 
| 70003 | 消息信息发送超过限制 | 消息信息发送超过限制。暂时接口调用有次数限制 | 
| 70004 | 消息信息不存在 | 消息未在消息平台注册 | 
| 70005 | 该时间段不允许发送消息 | 平台指定的时间段不允许发送消息。目前无限制。 | 
| 70006 | 通过文件发送消息的 uniqueIds 文件不存在 | 通过文件发送消息时,需要发送的 uniqueId 的文件不存在 | 
| 70007 | 消息签名异常 | 消息签名异常 | 
| 70008 | 消息权限异常 | 消息权限异常 | 
| 70009 | 消息查询异常 | message 信息查询异常 | 
| 70010 | uniqueId 不匹配 | 发送 message 信息时 uniqueId 不匹配 | 
| 70011 | 用户已关闭消息推送权限 | 发送 message 信息时,用户已关闭消息推送权限 | 
| 70012 | 用户最近未访问过该小程序 | 发送 message 信息时,发送的用户最近未访问过该小程序 | 
| 70013 | 用户近三天内已经被该小程序发送过消息! | 发送 message 信息时,该用户近三天内已经被该小程序发送过消息 | 
资源术语
| 名称 | 字段名 | 描述 | 
|---|---|---|
| 小程序 ID | miniappId | 小程序的唯一 Id,用于唯一识别小程序。 | 
| 密钥字段 | accessKeySecret | AccessKeySecret 是用户用于加密签名字符串和小程序平台用来验证签名字符串的密钥,AccessKeySecret 必须保密。 | 
| 签名字段 | sign | 小程序消息平台签名字段。小程序平台服务端会校验签名。计算方式为:结合 AccessKeySecret 对请求参数进行 sha256 算法加密。 | 
公共 HTTP 头定义
| 名称 | 类型 | 描述 | 
|---|---|---|
| Content-Type | 字符串 | application/json | 
| Accept-Timezone | 字符串 | 时区。仅支持标准 UTC 时区。比如 UTC+0 | 
公共签名
1. 简介
接入小程序消息平台需要的签名。
2. 代码示例
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.TreeMap;
import java.util.Map;
public class SignDemo {
    public static void main(String[] args) {
        String miniappId = "1000083312531541234";
        String operatorId = "1000083312531541234";
        String timeStamp = "1677577964000";
        // 自定义业务数据。data中添加的参数为自定义业务字段中的字段。比如注册消息接口中的{"title": "这是个消息标题","text": "这是个消息正文","linkUrl": "这是个消息链接","microMotionEffectStatus": "0"}
        Map<String, Object> data = new TreeMap<>();
        data.put("自定义业务数据data中的参数名称","自定义业务数据data中的参数的值"); // 比如:data.put("title", "这是个消息标题");data.put("text", "这是个消息正文")
        // secretAccessKey从运营平台获取
        String secretAccessKey = "你的 AccessKeySecret";
        String requestStr = "miniappId=" + miniappId + "&operatorId=" + operatorId + "&data=" + JSON.toJSONString(data) + "&timeStamp=" + timeStamp;
        String secretAccessKeySign = "&secretAccessKey=" + secretAccessKey;
        requestStr = requestStr + secretAccessKeySign;
        String sign = EncryptSha256Util.getSha256Str(requestStr).toUpperCase();
        System.out.println(sign);
    }
}
class EncryptSha256Util {
    private EncryptSha256Util() {
        throw new IllegalStateException("EncryptSha256Util class");
    }
    /**
     * sha256加密
     *
     * @param str 要加密的字符串
     * @return 加密后的字符串
     */
    public static String getSha256Str(String str) {
        MessageDigest messageDigest;
        String encodeStr = "";
        try {
            messageDigest = MessageDigest.getInstance("SHA-256");
            messageDigest.update(str.getBytes(StandardCharsets.UTF_8));
            encodeStr = byte2Hex(messageDigest.digest());
        } catch (NoSuchAlgorithmException e) {
            System.out.printf("进行sha256加密失败!massage: %s%n", e.getMessage());
        }
        return encodeStr;
    }
    /**
     * sha256加密 将byte转为16进制
     *
     * @param bytes 字节码
     * @return 加密后的字符串
     */
    private static String byte2Hex(byte[] bytes) {
        StringBuilder stringBuilder = new StringBuilder();
        String tempStr;
        for (byte aByte : bytes) {
            tempStr = Integer.toHexString(aByte & 0xFF);
            if (tempStr.length() == 1) {
                //第一位的进行补0操作
                stringBuilder.append("0");
            }
            stringBuilder.append(tempStr);
        }
        return stringBuilder.toString();
    }
}
消息功能
1. 消息配置
1.1 简介
注册消息信息配置接口。在发送消息给指定用户之前,需要优先生成消息。
1.2 接口文档
1.2.1 获取上传注册消息的富文本图片文件至 oss 的 token 的接口
注意:此上传 token 具有有效期,目前有效期 1200s
接口地址: https://api.dlight-app.com/miniapp/messageplatform/openapi/message/cmd/registerMessageRichMediaPictureContext
请求方式: POST
请求数据类型: application/x-www-form-urlencoded,application/json
响应数据类型: */*
请求参数:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| miniappId | 小程序 id | TRUE | string | 
| operatorId | 操作者自定义 Id | FALSE | string | 
| sign | 请求签名 | TRUE | string | 
| timeStamp | 发送消息的时间戳(毫秒) | FALSE | string | 
| data | 自定义业务数据 | TRUE | map | 
data 参数具体字段:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| contentLength | 文件大小,最大限制 500K | TRUE | integer | 
| contentType | 文件类型(只支持 png,jpeg,jpg,bmp,webp 格式) | TRUE | string | 
| fileName | 文件名称(只支持 png,jpeg,jpg,bmp,webp 格式) | TRUE | string | 
请求示例:
{
  "miniappId": "1000083312531541234", //小程序id
  "operatorId": "1000083312531541234", //自定义操作人标记
  "timeStamp": "1677577964000", //发送消息的时间戳(毫秒)
  "sign": "1347FF225BDBA2E7D26BE03BC2B2CD9A2B6A32271102BAEDA5AACDC184FF0781", //签名,请参照公共签名代码进行生成
  "data": {
    "contentType": "image/jpeg",
    "contentLength": 169120, //文件大小(字节)
    "fileName": "xxx.jpeg" //文件名称
  }
}
响应状态:
| HTTP 状态码 | 说明 | 
|---|---|
| 200 | OK | 
| 201 | Created | 
| 401 | Unauthorized | 
| 403 | Forbidden | 
| 404 | Not Found | 
响应参数:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| code | 错误状态码 | integer(int32) | 
| message | 错误消息 | string | 
| sign | 返回参数签名信息。计算方式同生成签名方式 | string | 
| data | 响应数据 | json | 
响应数据 data 具体内容说明:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| miniappId | 小程序 ID | string | 
| fileName | 小程序平台重新生成的文件名称 | string | 
| accessUrl | 上传后下载文件的链接。此链接有有效期限制。默认 1 个小时 | string | 
| storageType | 存储类型。默认 oss | string | 
| uploadMethod | 上传方法。仅支持 PUT | string | 
| uploadUrl | 用来上传文件的 url | string | 
| uploadHeader | 上传时需要携带的请求头 | object | 
uploadHeader 具体内容说明:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| authorization | 授权字符串 | string | 
| x-oss-date | 获取 token 的时间(UTC+0) | string | 
| Host | oss 服务域名地址 | string | 
| x-oss-security-token | oss 服务权限 token | string | 
| Content-Length | 文件大小 | string | 
| Content-Type | 文件类型 | string | 
响应示例:
{
  "code": 0,
  "message": null,
  "data": {
    "uploadHeader": {
      "authorization": "xxx",
      "x-oss-date": "Tue, 28 Feb 2023 10:39:23 GMT",
      "Host": "xxx",
      "x-oss-security-token": "xxx",
      "Content-Length": "169120",
      "Content-Type": "image/jpeg"
    },
    "uploadMethod": "PUT",
    "accessUrl": "https://xxx",
    "uploadUrl": "https://xxx",
    "storageType": "oss",
    "fileName": "xxx.jpeg"
  },
  "sign": "EB72203BB81DB4DBF94C54631C8BCBA320AF68B6102A5D0E90AB5E904DB8C574"
}
1.2.2 上传注册消息的富文本图片文件至 oss 的接口
接口地址: 1.2.1 获取上传注册消息的富文本图片文件至 oss 的 token 的接口中,拿到的 uploadUrl 字段的值。
请求方式: PUT
响应数据类型: */*
请求 Header 参数:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| authorization | 授权字符串 | TRUE | string | 
| x-oss-date | 获取 token 的时间(UTC+0) | TRUE | string | 
| Host | oss 服务域名地址 | TRUE | string | 
| x-oss-security-token | oss 服务权限 token | TRUE | string | 
| Content-Type | 文件类型 | TRUE | string | 
请求 demo:
//引入的jar
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.10.0</version>
</dependency>
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import java.io.File;
import java.io.IOException;
public class HttpClientUploadDemo {
    /**
     * 上传文件
     */
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();
        MediaType mediaType = MediaType.parse("1.2.1步骤中获得的Content-Type");
        RequestBody body = RequestBody.create(new File("你的文件地址"), mediaType);
        Request request = new Request.Builder()
                .url("1.2.1步骤中获得的uploadUrl")
                .put(body)
                .addHeader("authorization", "1.2.1步骤中获得的authorization")
                .addHeader("x-oss-date", "1.2.1步骤中获得的x-oss-date")
                .addHeader("Host", "1.2.1步骤中获得的Host")
                .addHeader("x-oss-security-token", "1.2.1步骤中获得的x-oss-security-token")
                .addHeader("Content-Length", "1.2.1步骤中获得的Content-Length")
                .addHeader("Content-Type", "1.2.1步骤中获得的Content-Type")
                .build();
        Response response = null;
        try {
            response = client.newCall(request).execute();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("Response content : " + response);
    }
}
响应状态:
| HTTP 状态码 | 说明 | 
|---|---|
| 200 | OK | 
| 201 | Created | 
| 401 | Unauthorized | 
| 403 | Forbidden | 
| 404 | Not Found | 
1.2.3 注册消息接口
接口地址: https://api.dlight-app.com/miniapp/messageplatform/openapi/message/cmd/registerMessage
请求方式: POST
请求数据类型: application/x-www-form-urlencoded,application/json
响应数据类型: */*
请求参数:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | schema | 
|---|---|---|---|---|
| miniappId | 小程序 id | TRUE | string | |
| operatorId | 操作者自定义 Id | FALSE | string | |
| sign | 请求签名 | TRUE | string | |
| timeStamp | 发送消息的时间戳(毫秒) | FALSE | string | |
| data | 自定义业务数据 | TRUE | map | RegisterMessageInfoRequestDTO | 
data 参数具体说明:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| linkUrl | 消息跳转地址 | TRUE | string | 
| text | 消息正文 | FALSE | string | 
| title | 消息标题 | TRUE | string | 
| microMotionEffectStatus | 微动效展示状态("0":不需要展示,"1":需要展示) | FALSE | string | 
| richMediaPictureType | 富媒体图片展示类型(1:图片 2:视频) | FALSE | string | 
| richMediaPictureFileNames | 富媒体图片文件名列表(富媒体图片展示类型为 1 时,最大可传 3 条;富媒体图片展示类型为 2 时,最大可传 1 条) | FALSE | array | 
请求示例:
{
  "miniappId": "1000083312531541234", //小程序id
  "operatorId": "1000083312531541234", //自定义操作人标记
  "timeStamp": "1677577964000", //发送消息的时间戳(毫秒)
  "sign": "1347FF225BDBA2E7D26BE03BC2B2CD9A2B6A32271102BAEDA5AACDC184FF0781", //签名,请参照公共签名代码进行生成
  "data": {
    "title": "这是个消息标题",
    "text": "这是个消息正文",
    "linkUrl": "这是个消息链接",
    "microMotionEffectStatus": "0", //无需展示桌面微动效
    "richMediaPictureType": "1", //图片类型
    "richMediaPictureFileNames": ["6bc061fe27664e319fc12f0d799018bd.jpeg"] //展示的图片列表
  }
}
响应状态:
| HTTP 状态码 | 说明 | 
|---|---|
| 200 | OK | 
| 201 | Created | 
| 401 | Unauthorized | 
| 403 | Forbidden | 
| 404 | Not Found | 
响应参数:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| code | 错误状态码 | integer(int32) | 
| message | 错误消息 | string | 
| sign | 返回参数签名信息。计算方式同生成签名方式 | string | 
| data | 响应数据 | json | 
相应参数 data 具体说明:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| messageId | 小程序消息 id | string | 
| miniappId | 小程序 ID | string | 
响应示例:
{
  "code": 0,
  "message": null,
  "data": {
    "miniappId": "1000083312531541234",
    "messageId": "100008331253154123420230228093159187"
  },
  "sign": "72B9C5CBF004636DB1CF057D2F9355F3EF9BD9D0E26CC67617F1AE4FDEE60C67"
}
2. 发送消息(接口)
2.1 简介
注意:该接口有使用限制。通过接口传入 uniqueId 列表,列表大小限制为 200,每个小程序每秒可发送的消息条数限制为 200 条(默认值,如需调整,请联系小程序平台)。
通过接口形式同步发送消息给指定的 uniqueIds,适合发送消息给小批量 uniqueId 的场景。
2.2 接口文档
接口地址: https://api.dlight-app.com/miniapp/messageplatform/openapi/message/cmd/sendMessage
请求方式: POST
请求数据类型: application/x-www-form-urlencoded,application/json
响应数据类型: */*
请求参数:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| miniappId | 小程序 id | TRUE | string | 
| operatorId | 操作者自定义 Id | FALSE | string | 
| sign | 请求签名 | TRUE | string | 
| timeStamp | 发送消息的时间戳(毫秒) | FALSE | string | 
| data | 自定义业务数据 | TRUE | map | 
请求参数 data 具体说明:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| messageId | 消息 Id | TRUE | string | 
| uniqueIds | uniqueId 列表 | TRUE | array | 
请求示例:
{
  "miniappId": "1000083312531541234", // 小程序id
  "operatorId": "1000083312531541234", // 自定义操作人标记
  "timeStamp": "1677577964000", // 发送消息的时间戳(毫秒)
  "sign": "1347FF225BDBA2E7D26BE03BC2B2CD9A2B6A32271102BAEDA5AACDC184FF0781", // 签名,请参照公共签名代码进行生成
  "data": {
    "messageId": "100008331253154123420230228093159187",
    "uniqueIds": [
      "d8ae2bcd1e448394e606359d1d03aa910f6e4978fe01d2381971a058be0c767d",
      "a9b2b1c5ec1cfd0e232069f820097c1cba0fcb93f90d1110cddb305fd8293ebe"
    ]
  }
}
响应状态:
| HTTP 状态码 | 说明 | 
|---|---|
| 200 | OK | 
| 201 | Created | 
| 401 | Unauthorized | 
| 403 | Forbidden | 
| 404 | Not Found | 
响应参数:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| code | 错误状态码 | integer(int32) | 
| sign | 返回参数签名信息。计算方式同生成签名方式 | string | 
| data | 响应数据 | json | 
相应参数 data 具体说明:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| sendFailedUniqueInfos | array | array | 
| uniqueId | uniqueId | string | 
| failCode | 发送失败业务码 | string | 
| failDesc | 发送失败业务备注原因 | string | 
响应示例:
{
  "code": 0,
  "message": null,
  "data": {
    "sendFailedUniqueInfos": [
      {
        "uniqueId": "xxxx",
        "failCode": "70013",
        "failDesc": "用户最近未访问过该小程序"
      }
    ]
  },
  "sign": "A05A50E851C4C256127480B227AABD0BFEBA0C7D2E395458DCC6BA93B4CB4A38"
}
3. 发送消息(文件)
3.1 简介
注意:
- 上传的 uniqueId 的文件最大 50M(文件每一行为一个 uniqueId,换行符为\r\n).
 - 此功能需要开发者向小程序平台申请使用。
 
通过 uniqueId 文件方式,异步发送信息给指定用户,适合发送给大批量用户。此功能需要开发者执行三步。获取上传 context -> 上传 uniqueId 文件 -> 调用发送消息接口。

3.2 接口文档
3.2.1 获取上传 oss 的 token 的接口
注意:此上传 token 具有有效期,目前有效期 1200s
接口地址: https://api.dlight-app.com/miniapp/messageplatform/openapi/message/cmd/sendMessageByFileContext
请求方式: POST
请求数据类型: application/x-www-form-urlencoded,application/json
响应数据类型: */*
请求参数:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| miniappId | 小程序 id | TRUE | string | 
| operatorId | 操作者自定义 Id | FALSE | string | 
| sign | 请求签名 | TRUE | string | 
| timeStamp | 发送消息的时间戳(毫秒) | FALSE | string | 
| data | 自定义业务数据 | TRUE | map | 
data 参数具体说明:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| contentLength | 文件大小(byte),最大限制 50M | TRUE | integer | 
| contentType | 文件类型 | TRUE | string | 
| fileName | 文件名称 | TRUE | string | 
| messageId | 消息 Id | TRUE | string | 
请求示例:
{
  "miniappId": "1000083312531541234", // 小程序id
  "operatorId": "1000083312531541234", // 自定义操作人标记
  "timeStamp": "1677577964000", // 发送消息的时间戳(毫秒)
  "sign": "1347FF225BDBA2E7D26BE03BC2B2CD9A2B6A32271102BAEDA5AACDC184FF0781", // 签名,请参照公共签名代码进行生成
  "data": {
    "contentType": "text/plain",
    "contentLength": 33000000, // 文件大小(字节)
    "fileName": "uniqueId.txt", // 文件名称
    "messageId": "100008331253154123420230228093159187"
  }
}
响应状态:
| HTTP 状态码 | 说明 | 
|---|---|
| 200 | OK | 
| 201 | Created | 
| 401 | Unauthorized | 
| 403 | Forbidden | 
| 404 | Not Found | 
响应参数:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| code | 错误状态码 | integer(int32) | 
| data | 响应数据 | json | 
| sign | 返回参数签名信息。计算方式同生成签名方式 | string | 
响应参数 data 具体说明:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| miniappId | 小程序 ID | string | 
| fileName | 小程序平台重新生成的文件名称 | string | 
| accessUrl | 上传后下载文件的链接。此链接有有效期限制。默认 1 个小时 | string | 
| storageType | 存储类型。默认 oss | string | 
| uploadMethod | 上传方法。仅支持 PUT | string | 
| uploadUrl | 用来上传文件的 url | string | 
| uploadHeader | 上传时需要携带的请求头 | object | 
uploadHeader 具体说明:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| authorization | 授权字符串 | string | 
| x-oss-date | 获取 token 的时间(UTC+0) | string | 
| Host | oss 服务域名地址 | string | 
| x-oss-security-token | oss 服务权限 token | string | 
| Content-Length | 文件大小 | string | 
| Content-Type | 文件类型 | string | 
响应示例:
{
  "code": 0,
  "message": null,
  "data": {
    "uploadHeader": {
      "authorization": "xxx",
      "x-oss-date": "Tue, 28 Feb 2023 10:39:23 GMT",
      "Host": "xxx",
      "x-oss-security-token": "xxx",
      "Content-Length": "33000000",
      "Content-Type": "text/plain"
    },
    "uploadMethod": "PUT",
    "accessUrl": "https://xxx",
    "uploadUrl": "https://xxx",
    "storageType": "oss",
    "fileName": "xxx.txt"
  },
  "sign": "EB72203BB81DB4DBF94C54631C8BCBA320AF68B6102A5D0E90AB5E904DB8C574"
}
3.2.2 上传 uniqueId 文件至 oss 的接口
接口地址: 3.2.1 获取上传 oss 的 token 的接口中,拿到的 uploadUrl 字段的值。
请求方式: PUT
响应数据类型: */*
请求 Header 参数:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| authorization | 授权字符串 | TRUE | string | 
| x-oss-date | 获取 token 的时间(UTC+0) | TRUE | string | 
| Host | oss 服务域名地址 | TRUE | string | 
| x-oss-security-token | oss 服务权限 token | TRUE | string | 
| Content-Type | 文件类型 | TRUE | string | 
| Content-Length | 文件大小 | TRUE | string | 
请求 demo:
//引入的jar
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.10.0</version>
</dependency>
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import java.io.File;
import java.io.IOException;
public class HttpClientUploadDemo {
    /**
     * 上传文件
     */
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();
        MediaType mediaType = MediaType.parse("3.2.1步骤中获得的Content-Type");
        RequestBody body = RequestBody.create(new File("你的文件地址"), mediaType);
        Request request = new Request.Builder()
                .url("3.2.1步骤中获得的uploadUrl")
                .put(body)
                .addHeader("authorization", "3.2.1步骤中获得的authorization")
                .addHeader("x-oss-date", "3.2.1步骤中获得的x-oss-date")
                .addHeader("Host", "3.2.1步骤中获得的Host")
                .addHeader("x-oss-security-token", "3.2.1步骤中获得的x-oss-security-token")
                .addHeader("Content-Length", "3.2.1步骤中获得的Content-Length")
                .addHeader("Content-Type", "3.2.1步骤中获得的Content-Type")
                .build();
        Response response = null;
        try {
            response = client.newCall(request).execute();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("Response content : " + response);
    }
}
响应状态:
| HTTP 状态码 | 说明 | 
|---|---|
| 200 | OK | 
| 201 | Created | 
| 401 | Unauthorized | 
| 403 | Forbidden | 
| 404 | Not Found | 
3.2.3 通过文件发送消息的接口
该接口为异步方式调用,数据任务处理存在延时。
接口地址: https://api.dlight-app.com/miniapp/messageplatform/openapi/message/cmd/sendMessageByFile
请求方式: POST
请求数据类型: application/x-www-form-urlencoded,application/json
响应数据类型: */*
请求参数:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| miniappId | 小程序 id | TRUE | string | 
| operatorId | 操作者自定义 Id | FALSE | string | 
| sign | 请求签名 | TRUE | string | 
| timeStamp | 发送消息的时间戳(毫秒) | FALSE | string | 
| data | 自定义业务数据 | TRUE | map | 
请求参数 data 具体说明:
| 参数名称 | 参数说明 | 是否必须 | 数据类型 | 
|---|---|---|---|
| messageFileName | uniqueId 的文件名称. ⚠️ 注意:此文件名为从获取 context 接口返回的文件名,是小程序平台生成的文件名。 | TRUE | string | 
| messageId | 消息 Id | TRUE | string | 
请求示例:
{
  "miniappId": "1000083312531541234", // 小程序id
  "operatorId": "1000083312531541234", // 自定义操作人标记
  "timeStamp": "1677577964000", // 发送消息的时间戳(毫秒)
  "sign": "1347FF225BDBA2E7D26BE03BC2B2CD9A2B6A32271102BAEDA5AACDC184FF0781", // 签名,请参照公共签名代码进行生成
  "data": {
    "messageFileName": "2183d1173dd341fea0ba60234fe56ce2.txt", // 注意:此文件名为从获取context接口返回的文件名,是小程序平台生成的文件名。
    "messageId": "100008331253154123420230228093159187"
  }
}
响应状态:
| HTTP 状态码 | 说明 | 
|---|---|
| 200 | OK | 
| 201 | Created | 
| 401 | Unauthorized | 
| 403 | Forbidden | 
| 404 | Not Found | 
响应参数:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| code | 错误状态码 | integer(int32) | 
| message | 错误消息 | string | 
| sign | 返回参数签名信息。计算方式同生成签名方式 | string | 
| data | 响应数据 | json | 
响应参数 data 具体说明:
| 参数名称 | 参数说明 | 类型 | 
|---|---|---|
| success | 是否操作成功 | boolean | 
响应示例:
{
  "code": 0,
  "message": null,
  "data": {
    "success": true
  },
  "sign": "881706EBAAB6BBA03676BD422420431F744887B5EDB81F2306153E2CD2D271B3"
}