我正在使用 Slack Web API 將消息發(fā)布到 Go 中的頻道。我正在嘗試在文本字段中支持多行消息。根據(jù)文檔,只需添加一個 \n 就可以了,但它不起作用。發(fā)布時 \n 出現(xià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貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個贊
我弄清楚了這個問題。我最初發(fā)布的示例實(shí)際上會按預(yù)期工作。我簡化了原始代碼,它是一個命令行應(yīng)用程序,其中文本是作為 CLI 標(biāo)志傳遞的參數(shù),所以它看起來有點(diǎn)像這樣:
cliapp --text="one\ntwo"
保存這個標(biāo)志值的變量實(shí)際上并沒有轉(zhuǎn)義字符,所以它實(shí)際上是:
"one\\ntwo"
我使用了一個簡單的字符串替換來修復(fù)這些值:
text = strings.Replace(text, "\\n", "\n", -1)

青春有我
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個贊
- 3 回答
- 0 關(guān)注
- 444 瀏覽
添加回答
舉報(bào)
0/150
提交
取消