还有种办法是用服务端规则把 Twitter 的流量重定向到一个额外带有特殊查询字串符的 URL, 这样服务端由于查询字串符就会重新回源, 给 TwitterBot 生成元数据标签, 然后还能继续缓存起来.
给 TwitterBot 单独生成元数据标签之后发现 Cloudflare 的「按设备类型缓存」并非是按照设想中的会分隔 Bot 的缓存.
https://developers.cloudflare.com/automatic-platform-optimization/reference/cache-device-type/
CF 公开的正则里面只有把 GoogleBot 划分在了移动设备里, 而其他的 Bot 被排除, 统统读到桌面端设备的缓存, 如果有桌面设备或者其他 Bot 先行一步让 CF 缓存了页面, 后续 TwitterBot 进来也就没办法读到单独为它准备的元数据标签.
怎么办呢? 不放弃缓存的情况下, 看起来只能给 TwitterBot 开绿灯让它绕过缓存直接回源了.
Discussion
给不同的 Bot 隔离缓存确实是比较好的办法. 接下来应该是尝试把 kind:30023 (长文本格式) 加入到用户的主页上了, 之前还在考虑要怎么处理好超级长的文章, 还有 Markdown 的解析(虽然已经有模块了), 但感觉把长内容的全文和短内容的全文混合在一个 feed 里面是不太好的做法. 要不就只放个链接在里面算了.