我有一个静态站点,用户可以在其中生成无限组合的图像和内容。用户完成后,将生成永久链接,以允许他们通过 Facebook/Twitter/GooglePlus/等分享他们的创作。我希望他们共享的帖子包含用户的图像和内容,但我发现社交媒体机器人只从我的永久链接中解析 HTML 元标记,它们不评估任何 Javascript。
如何让我的用户的内容出现在共享的社交媒体帖子上?单击永久链接时,客户端 Javascript 将评估永久链接的查询参数并呈现用户的内容。我也可以在 HTML 元标记中呈现用户的内容,Twitter 和 FB 使用它来填充帖子的内容,但是机器人不评估任何 javascript,因此不会呈现元标记。
我探索过的一种可能的解决方案是预渲染。也许我的永久链接可以是一个 HTML 文件在 AWS S3 存储桶上的位置,只要用户分享他们的永久链接,我就可以创建它。S3 上的那个 HTML 文件可以包含特定于用户的元标记,我可以将其提供给社交媒体机器人。当该文件被访问时,我可以让它重定向到我的永久链接。这看起来合理吗?我可以在尝试后报告。
另一种解决方案是使用预渲染服务,例如https://prerender.io/。它看起来有点笨重和黑盒,但它可能比我上面的 S3 解决方案更健壮和可靠。有任何想法吗?
我愿意接受反馈和其他解决方案,任何建议都会很棒。
其他相关信息:
这个答案似乎很有趣,其中涉及激活 Facebook Javascript SDK: https ://stackoverflow.com/a/34178987/1884158
我知道 Twitter 的 Card Validator 和 Facebooks Share Debugger 之类的工具,在这里: https ://cards-dev.twitter.com/validator https://developers.facebook.com/tools/debug/ 这对测试很有用任何解决方案。
如果有帮助,我的网站是一个捆绑在 HTML/CSS/JS 中并完全在客户端呈现的 React 应用程序。