Slack 链接预览无法正常工作或未更新
Slack 通过机器人读取 oEmbed、Open Graph 和 Twitter Card 标签来展开链接预览。抓取结果会在 Slack 中缓存约 30 分钟。
最后更新
快速修复
使用元标签检查工具检查该页面。
确保这些标签位于 Slackbot 下载的 HTML 中,且靠近 head 的顶部。
允许 Slackbot-LinkExpanding 通过您的防火墙或机器人防护系统。
等待大约 30 分钟,或者在发布 URL 时加上 ?v=2。
为什么 Slack 预览缺失或内容陈旧
Slack 缓存了上一次的结果。响应结果会在全局缓存约 30 分钟。
Slackbot 仅获取页面的部分内容。它使用 HTTP Range 请求头尽可能少地抓取内容,因此页面靠后位置的标签可能会被遗漏。
Bot 防护阻止了抓取。Slack 使用 User-Agent
Slackbot-LinkExpanding 1.0进行抓取;如果遇到质询验证页面或 403 错误,则意味着无法获取标签。图片未通过 Slack 的检查。Slack 会下载图片进行检查,因此失效或受阻的图片 URL 会导致图片无法显示。
链接缺少协议。只有当 URL 包含 http 或 https 且为完整格式时,链接才会展开预览。
如何解决
在 Meta 标签检查器中打开页面以查看 Open Graph 和 Twitter 标签。
将
og:title、og:description和og:image尽早放置在 head 标签中。在您的 CDN 或防火墙规则中允许
Slackbot-LinkExpandingUser-Agent。检查图片 URL 是否可以在无需 Cookie 或登录的情况下加载。
等待 30 分钟后重新发送链接,或者附加
?v=2立即进行测试。
Slack 读取的标签
oEmbed(当页面链接到 oEmbed 端点时)
og:title、og:description、og:imagetwitter:title、twitter:description、twitter:image。使用 Twitter 卡片验证器 进行检查
图片尺寸规则
未经验证:Slack 未公开预览图片的尺寸或文件大小限制。1200 x 630 像素的 JPG 或 PNG 格式图片适用于 Slack 以及此处介绍的所有其他平台。
如何强制刷新
Slack 没有刷新工具。请等待约 30 分钟,或者附带查询字符串分享该 URL。已发送的消息将保留其原有的预览卡片。刷新工具显示了每个应用的操作步骤。
Slack 在展开链接预览时不会遵循 robots.txt,因此 Disallow 规则既不能阻止展开,也无法用来解释预览缺失的原因。
来源
常见问题
Slack 会将链接预览缓存多长时间?
根据 Slack 的 robots 页面,在整个 Slack 全局范围内大约需要 30 分钟。
robots.txt 会阻止 Slack 链接预览(unfurl)吗?
不。Slack 表示它在展开链接时不会遵循 robots.txt 规则,因为它是代表用户进行操作的。
为什么 Slack 只显示标题而不显示图片?
Slack 会下载该图片进行检查。如果该请求失败或被拦截,展开的链接预览将不会显示该图片。
相关指南
Discord 嵌入内容未显示或未更新
Discord 会抓取该页面一次,读取服务器 HTML 中的标签,并将嵌入内容缓存约 30 分钟。它绝不会运行您的 JavaScript。
X (Twitter) 卡片未显示或未更新
X 会优先根据 twitter: 标签生成卡片预览,如果不存在则会回退使用 og: 标签。现在已经不再提供可以刷新缓存的验证工具了,因此解决方法就是配置正确的标签,并使用一个全新的 URL。
领英 (LinkedIn) 链接预览无法显示或未更新
领英(LinkedIn)根据四个 og: 标签生成预览卡片并保留缓存副本。修复这些标签后,使用 Post Inspector 让领英重新抓取该页面。