如何在Go语言中禁用Slack URL预览功能
如何禁用Slack机器人发送链接时的预览功能
我通过Slack机器人发送带网站链接的消息时,Slack默认会生成链接预览,需要禁用这个功能。以下是我的代码:
s := slack.New("Bot-Token", slack.OptionDebug(true)) data := `TEST: Slack link Preview 101 <https://www.google.com/maps|publish>` params := slack.PostMessageParameters{ UnfurlLinks: false, UnfurlMedia: false, } _, t, err := s.PostMessage( "ChannelID", slack.MsgOptionText(data, false), slack.MsgOptionPostMessageParameters(params), ) if err != nil { log.Error(err.Error()) }
当前效果:消息仍会显示链接的预览卡片,仅文本部分显示为"publish"。
期望效果:只显示文本"publish",不出现任何链接预览卡片。
解决方案
问题出在你使用的链接格式<https://www.google.com/maps|publish>会被Slack识别为可展开的链接,即使全局设置了UnfurlLinks: false,仍可能触发预览。你需要在链接前加上!,用Slack的特殊语法强制禁用单个链接的预览。
修改后的完整代码:
s := slack.New("Bot-Token", slack.OptionDebug(true)) // 在链接前添加!,强制禁用该链接的预览 data := `TEST: Slack link Preview 101 !<https://www.google.com/maps|publish>` params := slack.PostMessageParameters{ UnfurlLinks: false, UnfurlMedia: false, } _, t, err := s.PostMessage( "ChannelID", slack.MsgOptionText(data, false), slack.MsgOptionPostMessageParameters(params), ) if err != nil { log.Error(err.Error()) }
添加!后,Slack会完全忽略该链接的预览请求,配合全局的UnfurlLinks和UnfurlMedia设置,就能达到只显示指定文本、无预览的效果。
内容的提问来源于stack exchange,提问作者GM_1
相关产品推荐
相关产品推荐

