为了账号安全,请及时绑定邮箱和手机立即绑定

使用 \n 换行的 Slack API 在 chat.postMessage中不起作用

使用 \n 换行的 Slack API 在 chat.postMessage中不起作用

Go
偶然的你 2022-01-10 15:12:32
我正在使用 Slack Web API 将消息发布到 Go 中的频道。我正在尝试在文本字段中支持多行消息。根据文档,只需添加一个 \n 就可以了,但它不起作用。发布时 \n 出现在文本中并且没有换行符。这是我正在使用的代码:func PostMessage(token, channelName, userName, text string) error {    uv := url.Values{}    uv.Add("token", token)    uv.Add("channel", channelName)    uv.Add("username", userName)    uv.Add("text", text)    resp, err := http.PostForm("https://slack.com/api/chat.postMessage", uv)    if err != nil {        return err    }    return nil}func main() {    if err := PostMessage("xxxx", "#test-channel", "API", "This should be the first line\nThis should be the second line"); err != nil {        panic(err)    }}
查看完整描述

3 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

我弄清楚了这个问题。我最初发布的示例实际上会按预期工作。我简化了原始代码,它是一个命令行应用程序,其中文本是作为 CLI 标志传递的参数,所以它看起来有点像这样:

cliapp --text="one\ntwo"

保存这个标志值的变量实际上并没有转义字符,所以它实际上是:

"one\\ntwo"

我使用了一个简单的字符串替换来修复这些值:

text = strings.Replace(text, "\\n", "\n", -1)


查看完整回答
反对 回复 2022-01-10
?
慕神8447489

TA贡献1780条经验 获得超1个赞

我正在使用Java,我做到了

message.replace("\\n","\n")

它奏效了。


查看完整回答
反对 回复 2022-01-10
?
青春有我

TA贡献1784条经验 获得超8个赞

只需用“`n”转义换行符“\n”

参考: https //ss64.com/ps/syntax-esc.html


查看完整回答
反对 回复 2022-01-10
  • 3 回答
  • 0 关注
  • 347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信