钉钉消息推送服务(钉钉群机器人推送).md 6.2 KB

钉钉消息推送服务(钉钉群机器人推送)

入参和返回值

{
  "UNI_BSS_BODY": {
    "PUSH_MESSAGE_REQ": {
      "MSG_TYPE": "text",
      "DATA": {
        "AT_ALL": false,
        "TEXT": {
          "CONTENT": "河北联通:18631137650"
        }
      },
      "ACCESS_TOKEN": "16e4778576ec99fbb2ce7083812d043aa4f9630112000ae3b15d25aa6b3b0b06",
      "BUSI_CODE": "30000111",
      "MODULE_ID": "20000156",
      "SYSTEM_ID": "10000078"
    }
  },
  "UNI_BSS_HEAD": {
    "APP_ID": "ENWaB7YdUD",
    "TIMESTAMP": "2023-05-10 20:03:51 650",
    "TRANS_ID": "20230510200351650393652",
    "TOKEN": "382e04599bce159cfa372dd5d88f9927"
  }
}
{
  "UNI_BSS_BODY": {
    "PUSH_MESSAGE_RSP": {
      "STATUS": "0000",
      "MSG": "服务调用成功!",
      "TXID": "73b7ce8141ef^1681754343426^-157732",
      "RSP": {
        "RSP_CODE": "0000",
        "RSP_DESC": "请求成功",
        "SUB_CODE": "0000",
        "SUB_DESC": "钉钉机器人推送成功",
        "DATA": []
      }
    }
  },
  "UNI_BSS_HEAD": {
    "RESP_DESC": "Success",
    "APP_ID": "ENWaB7YdUD",
    "RESP_CODE": "00000",
    "TIMESTAMP": "2023-05-10 20:03:51 650",
    "TRANS_ID": "20230510200351650393652"
  }
}
{
  "UNI_BSS_BODY": {
    "PUSH_MESSAGE_RSP": {
      "STATUS": "0000",
      "MSG": "服务调用成功!",
      "TXID": "73b7ce8141ef^1681754343426^-157802",
      "RSP": {
        "RSP_CODE": "8888",
        "RSP_DESC": "请求失败310000",
        "SUB_CODE": "8888",
        "SUB_DESC": "钉钉机器人推送失败错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;",
        "DATA": []
      }
    }
  },
  "UNI_BSS_HEAD": {
    "RESP_DESC": "Success",
    "APP_ID": "ENWaB7YdUD",
    "RESP_CODE": "00000",
    "TIMESTAMP": "2023-05-10 22:29:43 563",
    "TRANS_ID": "20230510222943563183179"
  }
}

调用代码

/*
 * 钉钉消息推送服务(钉钉群机器人推送)
 * json_chinaUnicom_microservice_notice_pushMessage
 */
public class PushMessage {
    // 河北联通移网投诉管理系统
    protected static final String APP_ID = "ENWaB7YdUD";
    // 测试环境密钥
    protected static final String APP_SECRET_TEST = "MUwA8ZVBprY83mAZrtOfrMfjdiJ9RFXr";
    // 生产环境密钥
    protected static final String APP_SECRET = "oz4OgKBaMNwi4LWfLPbhrPbbuCS8T0Rb";

    private static final String URL = "http://10.244.18.105:8000/api/chinaUnicom/microservice/notice/pushMessage/v1";
    private static final String URL_TEST = "http://10.124.150.230:8000/api/chinaUnicom/microservice/notice/pushMessage/v1";

    // 系统编号
    private static final String SYSTEM_ID = "10000078";
    // 模块编号
    private static final String MODULE_ID = "20000156";
    // 业务编码
    private static final String BUSI_CODE = "30000111";

    public COMPConnectionContext query(Map<String, Object> parmeterMap, boolean test) {
        String realAppSecret = test ? APP_SECRET_TEST : APP_SECRET;
        String realUrl = test ? URL_TEST : URL;
        COMPConnection compConnection = new COMPJsonConnection(APP_ID, realAppSecret);

        // REQ
        Map<String, Object> req = new HashMap<>();

        Map<String, Object> pushMessageReq = new HashMap<>();
        req.put("PUSH_MESSAGE_REQ", pushMessageReq);

        // 公共参数
        pushMessageReq.put("SYSTEM_ID", SYSTEM_ID);
        pushMessageReq.put("MODULE_ID", MODULE_ID);
        pushMessageReq.put("BUSI_CODE", BUSI_CODE);

        // 输入的参数信息
        pushMessageReq.put("ACCESS_TOKEN", parmeterMap.get("ACCESS_TOKEN"));
        pushMessageReq.put("MSG_TYPE", parmeterMap.get("MSG_TYPE"));
        pushMessageReq.put("DATA", parmeterMap.get("DATA"));

        return compConnection.excute(Const.HttpMethodType.POST, realUrl, req, false);
    }
}

// 测试代码
/* Text消息 测试环境 */
void testQuery() {
    PushMessage pushMessage = new PushMessage();

    // 构造请求
    Map<String, Object> req = new HashMap<>();
    // 钉钉群的token
    req.put("ACCESS_TOKEN", "0c7bde53a655e2ca96cccc40bd24b0f33ef2af7898018f5c1e24e637cbb5ef59");
    // 消息类型:text、link、markdown、actionCard、feedCard
    req.put("MSG_TYPE", "text");
    // 消息体
    Map<String, Object> data = new HashMap<>();
    Map<String, Object> text = new HashMap<>();
    data.put("TEXT", text);
    text.put("CONTENT", "\"河北联通:这是一条测试消息。\"");
    data.put("AT_LIST", new ArrayList<Long>() {
        {
            add(15324104774L);
        }
    });
    data.put("AT_ALL", false);
    req.put("DATA", data);

    pushMessage.query(req, true);
}

/* Text消息 正式环境 */
void testQuery2() {
    PushMessage pushMessage = new PushMessage();

    // 构造请求
    Map<String, Object> req = new HashMap<>();
    // 钉钉群的token
    req.put("ACCESS_TOKEN", "0c7bde53a655e2ca96cccc40bd24b0f33ef2af7898018f5c1e24e637cbb5ef59");
    // 消息类型:text、link、markdown、actionCard、feedCard
    req.put("MSG_TYPE", "text");
    // 消息体
    Map<String, Object> data = new HashMap<>();
    Map<String, Object> text = new HashMap<>();
    data.put("TEXT", text);
    text.put("CONTENT", "\"河北联通:这是一条测试消息。\"");
    data.put("AT_LIST", new ArrayList<Long>() {
        {
            add(15324104774L);
        }
    });
    data.put("AT_ALL", false);
    req.put("DATA", data);

    pushMessage.query(req, false);
}

/* Markdown消息 正式环境 */
@Test
void testQuery3() {
    PushMessage pushMessage = new PushMessage();

    // 构造请求
    Map<String, Object> req = new HashMap<>();
    // 钉钉群的token
    req.put("ACCESS_TOKEN", "0c7bde53a655e2ca96cccc40bd24b0f33ef2af7898018f5c1e24e637cbb5ef59");
    // 消息类型:text、link、markdown、actionCard、feedCard
    req.put("MSG_TYPE", "markdown");
    // 消息体
    Map<String, Object> data = new HashMap<>();
    Map<String, Object> markdown = new HashMap<>();
    data.put("MARK_DOWN", markdown);
    markdown.put("TITLE", "测试markdown消息");
    markdown.put("TEXT",
            "# 河北联通:这是一条测试消息。 \n<table><tr><td>col1</td><td>col2</td></tr><tr><td>aa</td><td>bb</td></tr></table>");
    req.put("DATA", data);

    pushMessage.query(req, false);
}