在Slack website上,我可以格式化这样的信息:
{
"text": "<http://google.com|link to google>"
}
在信息中它会显示如下:
但我正在尝试编写一个机器人,这些链接不起作用。使用我的websocket连接,我可以发送这样的消息:
var send = new MessageToSlack()
{
type = "message",
channel = msg.channel,
text = $"http://google.com"
};
ws.SendAsync(JsonConvert.SerializeObject(send), b => { });
Slack会正确地将http://google.com
解释为链接,并将其显示为:
但是,如果我尝试使用尖括号中的链接发送带有链接和链接文本(适用于Slack&#39; s站点)之间的管道的消息,如下所示:
var send = new MessageToSlack()
{
type = "message",
channel = msg.channel,
text = $"<http://google.com|to google>"
};
ws.SendAsync(JsonConvert.SerializeObject(send), b => { });
我最终得到了:
<http://google.com|to google>
那么如何从我的机器人中获得这个功能呢?为什么它无法正确解析链接?我错过了什么?
据我所知,这应该有用。 {@ 3}}在格式化消息的部分中说:
RTM API仅支持发布使用我们的默认邮件格式化模式格式化的简单邮件。
指向Here的链接确实提到了管道字符的链接,所以我认为它应该工作。
(注意MessageToSlack
只是一个普通的.NET类,其type
,channel
和text
属性由JSON.Net序列化,似乎提供了正确的JSON 。ws
是来自WebSocketSharp nuget包的我的websocket连接)
JSON:
{
"id": 1,
"type": "message",
"channel": "C6QRKT0EA",
"text": "<http://google.com|to google>"
}
编辑:因此,如果我从使用网络套接字连接回复切换到here,它会正常工作,但它更加繁琐使用和文档让我相信链接应该工作,而不需要跳过特定的箍。我只是误读了文档吗?或者文档在这一点上不是很清楚?
答案 0 :(得分:1)
尝试通过将"mrkdwn": true
添加到您的json
{
"type": "message",
"channel": "C6QRKT0EA",
"text": "<http://google.com|to google>",
"mrkdwn": true
}
阅读Message Formatting部分。希望它会有所帮助。