class TelegramImpl implements RobotMessenger {

    Expression templateTestSuiteMessage = RobotMessenger.parseTemplate("""
            <strong>测试套件: #{suiteName} 运行完毕！</strong>
            <i>通过数：#{pass}</i>
            <i>异常数：#{warn}</i>
            <i>失败数：#{fail}</i>
            <b>测试报告：<a href="#{url}">点击查看</a></b>""");
    Expression templateProjectSummaryMessage = RobotMessenger.parseTemplate("""
            <strong> Sonic云真机测试平台#{isWeekly ? '周': '日'}报</strong>
            <i> 项目：#{projectName}</i>
            <i> 时间：#{getFormat().format(startDate)} ～ #{getFormat().format(endDate)}</i>
            <i> 共测试：#{total}次</i>
            <i> 通过数：#{pass}</i>
            <i> 异常数：#{warn}</i>
            <i> 失败数：#{fail}</i>
            <i> 测试通过率：#{rate}%</i>
            <b>详细统计：<a href="#{url}">点击查看</a></b>""");
    Expression templateDeviceMessage = RobotMessenger.parseTemplate("""
            <strong> Sonic设备高温#{errorType == 1 ? '预警' : '超时，已关机！'}</strong>
            <i> 设备序列号：#{udId}</i>
            <i> 电池温度：#{tem}" ℃</i>""");

    /**
     * @param restTemplate RestTemplate
     * @param token        机器人token
     * @param content      通知内容
     * @author ayumi760405
     * @des Telegram电报机器人传送讯息方法
     * @date 2022/12/20
     */
    private void signAndSend(RestTemplate restTemplate, String token, String content) {
        try {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("parse_mode", "html");
            jsonObject.put("text", content);
            ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(token, jsonObject, JSONObject.class);
            log.info("robot result: " + responseEntity.getBody());
        } catch (Exception e) {
            log.warn("robot send failed, cause: " + e.getMessage());
        }
    }

    @Override
    public void sendMessage(RestTemplate restTemplate, String token, String secret, Expression messageTemplate, Message msg) {<FILL_FUNCTION_BODY>}

    @Override
    public Expression getDefaultTestSuiteTemplate() {
        return templateTestSuiteMessage;
    }

    @Override
    public Expression getDefaultProjectSummaryTemplate() {
        return templateProjectSummaryMessage;
    }

    @Override
    public Expression getDefaultDeviceMessageTemplate() {
        return templateDeviceMessage;
    }

}

        String content = messageTemplate.getValue(ctx, msg, String.class);
        this.signAndSend(restTemplate, token, content);
    
<no_super_class>