钉钉机器人文字样式

本文详细介绍了如何使用Markdown格式来设置钉钉机器人的文本内容,包括字体颜色和样式的调整。通过`<font>`标签,可以实现字体颜色(`color`)和字体样式(`face`)的改变。例如,使用`color=‘#FF0000’`来控制字体颜色,`face=‘华云彩绘’`来改变字体。值得注意的是,钉钉机器人并不支持所有英文颜色名称,且手机端与电脑端的颜色显示可能有所不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要介绍markdown格式的机器人文本内容:
先上钉钉机器人开发者演示:

{
     "msgtype": "markdown",
     "markdown": {
         "title":"杭州天气",
         "text": "#### 杭州天气 @150XXXXXXXX \n> 9度,西北风1级,空气良89,相对温度73%\n> ![screenshot](https://img-blog.csdnimg.cn/img_convert/eab4ea2c673c504d6e2e9a355466f179.png)\n> ###### 10点20分发布 [天气](https://www.dingtalk.com) \n"
     },
      "at": {
          "atMobiles": [
              "150XXXXXXXX"
          ],
          "isAtAll": false
      }
 }

这里我们主要对text部分文字内容进行字体和颜色变换

  • 使用 <font face=‘华云彩绘’ color=‘#FF0000’>演示字体</font>
  • color控制字体颜色,
    • 注意钉钉机器人不支持英文颜色如:red black green
    • 使用color=‘#FF0000’时只能在电脑钉钉上显示字体颜色、去掉引号才能在手机端显示修改后字体颜色
  • face控制字体样式

超级链接更多face和字体样式 传送门

### 如何通过钉钉机器人进行消息推送 #### 创建钉钉机器人 要实现钉钉机器人的消息推送,首先需要在钉钉群聊中创建一个自定义机器人。具体操作如下: - 登录钉钉应用管理后台,在目标群聊中点击“添加机器人”,并选择“自定义”类型的机器人[^2]。 - 完成配置后,会生成该机器人的 `Webhook` 地址以及可选的安全设置参数(如 `Secret`)。这些信息对于后续开发至关重要。 #### 获取 Webhook 和 Secret 每台钉钉机器人都拥有唯一的访问地址即 `Webhook URL`,它包含了用于身份验证的 `access_token` 参数。如果启用了加签机制,则还需要额外记录下对应的 `Secret` 值来计算签名以保障数据传输安全[^3]。 #### 支持的消息类型 钉钉机器人支持多种格式的消息推送,主要包括但不限于以下几种形式: - **Text**: 文本消息; - **Link**: 单条链接卡片样式展示; - **Markdown**: MarkDown语法渲染的内容呈现方式; #### Java 实现示例 以下是基于 Spring Boot 的简单例子展示了如何向指定的钉钉聊天室发送一条普通的文字通知: ```java import com.alibaba.fastjson.JSONObject; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.client.RestTemplate; public class DingTalkBot { private static final String WEBHOOK_URL = "https://oapi.dingtalk.com/robot/send?access_token=your_access_token&timestamp={0}&sign={1}"; public void sendTextMessage(String content){ RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); JSONObject bodyJson = new JSONObject(); bodyJson.put("msgtype", "text"); JSONObject textObject = new JSONObject(); textObject.put("content", content); bodyJson.put("text", textObject); HttpEntity<String> requestEntity = new HttpEntity<>(bodyJson.toJSONString(),headers); try{ long timestamp = System.currentTimeMillis(); // 当前时间戳毫秒数 String sign = generateSign(timestamp); // 计算签名 String urlWithParams = MessageFormat.format(WEBHOOK_URL, Long.toString(timestamp), sign); ResponseEntity<String> response = restTemplate.postForEntity(urlWithParams ,requestEntity,String.class); System.out.println(response.getBody()); }catch(Exception e){ e.printStackTrace(); } } /** * Generate signature based on secret and current time. */ private String generateSign(long timestamp){ String stringToSign = timestamp + "\n" + SECRET; Mac mac; try { mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(SECRET.getBytes(StandardCharsets.UTF_8),"HmacSHA256")); byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8)); return URLEncoder.encode(Base64.getEncoder().encodeToString(signData),"UTF-8"); } catch (Exception ex) { throw new RuntimeException(ex.getMessage(),ex); } } } ``` 上述代码片段实现了基本的文字消息发送逻辑,并考虑到了安全性方面的要求——当设置了密钥保护时需动态生成每次请求所需的合法签名[^5]。 #### Python 实现示例 同样也可以利用 python 来完成相似的功能调用过程: ```python import hashlib import hmac import json import requests from datetime import datetime class DingDingRobot: def __init__(self, webhook_url, secret=None): self.base_url = webhook_url self.secret = secret @staticmethod def _generate_sign(secret_key, timestamp): """Generate HMAC-SHA256 Sign.""" string_to_sign = f'{timestamp}\n{secret_key}' h = hmac.new( key=bytes(secret_key,'utf-8'), msg=string_to_sign.encode('utf-8'), digestmod=hashlib.sha256) return base64.b64encode(h.digest()).decode() def post_message(self,message_type,content,**kwargs): now_time=datetime.now() ts=int(now_time.timestamp()*1000) payload={ 'msgtype':message_type, message_type:{'content':content}, } params={} if self.secret is not None: sig=self._generate_sign(self.secret,str(ts)) params['timestamp']=str(ts) params['sign']=sig resp=requests.post(self.base_url,json=payload,params=params).json() return {'result':resp} if __name__=='__main__': robot=DingDingRobot(webhook_url='YOUR_WEBHOOK',secret='OPTIONAL_SECRET') result=robot.post_message(message_type="text",content="Hello from Python!") print(json.dumps(result,indent=4)) ``` 此脚本提供了一个封装类方便使用者快速集成至自己的业务场景当中去. ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值