飞书消息推送怎么换行?输入\n发送不成功怎么办?

公司用飞书的话,我们经常需要向飞书的一些群里推送消息。有些消息比较长,就涉及到格式问题,否则发到群里一乱堆,阅读起来非常不方便。
但是在近期的测试中我发现,飞书的普通文本消息如果加了\n或者其他转义字符,就发送不出去,但是换行是一定要换的。今天就分享一下飞书消息换行的方法,希望大家能少走些弯路,能直接拿去用就最好了。
其实飞书消息分好几个类型的,今天我们的主角就是富文本类型。
普通文本不能换行,只能从富文本入手了。富文本类型的消息写起来比较复杂格式如下:

{
    "msg_type": "post",
    "content": {
        "post": {
            "zh_cn": {
                "title": "项目更新通知",
                "content": [
                    [{
                        "tag": "text",
                        "text": "项目有更新: "
                    },
                    {
                        "tag": "a",
                        "text": "请查看",
                        "href": "http://www.example.com/"
                    },
                    {
                        "tag": "at",
                        "user_id": "ou_18eac8********17ad4f02e8bbbb"
                    }
                    ]
                ]
            }
        }
    }
} 

content中是一个数组,数组的每一项是一行,一行可以有多个内容也可以只有一个内容,内容可以是文字、超链接、图片,还可以@别人。今天主要就是为了解决换行的问题,其他的就先不聊了。
只要把内容拼成上面JSON的样式,然后发送消息即可。
下面是拼JSON的代码举例,有更好的方式也可以不参考。我拼的这个是从zh_cn这层开始的,更外层的直接写死在发飞书的方法里了。

// 开头
StringBuilder pushBuilder = new StringBuilder();
        pushBuilder.append("{\"zh_cn\":{\"title\":\"这里写标题");
        pushBuilder.append("\",\"content\":[");
// 一行内容
pushBuilder.append("[{\"tag\":\"text\",\"text\":\"一行内容\"}],");
// 结尾
pushBuilder.append("]}}");

另外需要注意,如果你某行内容中包含JSON,记得把它转成普通字符串的格式,否则JSON格式不对,也是发送不成功的。


喜欢本文的朋友不要忘记点一个免费的赞哦,你的赞将是我最大的动力。

### STM32 UART 发送数据时实现换行配置示例 对于STM32系列微控制器,在通过UART接口发送字符串并希望在显示设备上呈现换行效果时,通常需要向传输缓冲区添加特定的控制字符。具体来说,可以采用两种方式来处理换行: #### 方法一:手动追加换行符 `\r\n` 当构建待发送的数据包时,可以在消息结尾处附加回车(`\r`)和换行(`\n`)两个ASCII码字符。这适用于大多数终端模拟器以及串口调试工具。 ```c char message[] = "Hello, World!\r\n"; // 添加了CRLF组合用于换行 HAL_UART_Transmit(&huart1, (uint8_t*)message, strlen(message), HAL_MAX_DELAY); ``` 这种方法简单直观,但在每次调用前都需要确保已正确设置了终止序列[^1]。 #### 方法二:利用函数自动添加换行符 为了简化编程流程,也可以创建一个辅助函数,该函数负责接收原始文本参数,并在其后拼接必要的换行标记后再执行实际的数据传送操作。 ```c void UartSendWithNewline(UART_HandleTypeDef *huart, const char* text){ static char buffer[100]; // 假设最大长度超过100字节 snprintf(buffer,sizeof(buffer)-2,"%s",text); // 复制输入字符串到临时缓存区内 strcat(buffer,"\r\n"); // 追加CR/LF作为结束标志 HAL_UART_Transmit(huart,(uint8_t *)buffer,strlen(buffer),HAL_MAX_DELAY); } // 使用自定义方法发送换行消息 UartSendWithNewline(&huart1,"This is a test"); ``` 上述代码片段展示了如何封装一个更易于使用的API来进行带有换行功能的信息广播[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Counter-Strike大牛

创作不易,感谢鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值