分享仅含图片无文字的 Facebook 帖子

一位用户尝试分享 Facebook 帖子的链接:

我原本期望能生成一个 onebox,但实际情况并非如此。

检查该 URL 发现,它包含一个带有 iframe HTML 代码的 html 属性。

html 代码
<div id="fb-root"></div> <script async="1" defer="1" crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&amp;version=v6.0"></script><div class="fb-post" data-href="https://www.facebook.com/Millot.Elisabeth/posts/10221325515184674" data-width="552"><blockquote cite="https://www.facebook.com/Millot.Elisabeth/posts/10221325515184674" class="fb-xfbml-parse-ignore">Posted by <a href="https://www.facebook.com/Millot.Elisabeth">Elisabeth Millot Nguyen-Duc</a> on&nbsp;<a href="https://www.facebook.com/Millot.Elisabeth/posts/10221325515184674">Saturday, April 4, 2020</a></blockquote></div>

最终,通过在 Discourse 参数中允许该 iframe 内的 URL,我成功生成了 onebox。

是否有更简便的方法来实现相同的效果?

让我用一篇随机帖子测试一下:

看起来嵌入效果不错 :thinking:

再试一张图片

没错,也能正常嵌入。

在你提供的例子中,该帖子没有文本内容,只有一张图片。这导致 Facebook 省略了 og:description 标签。由于缺少该标签,Discourse 无法创建 onebox。同时,因为它没有提供 og:type 为 image,我们也就没有任何线索来处理它。

另外补充一点(尽管这似乎是不言自明的):要实现这一功能,帖子必须是公开的,不过在本例中似乎已经是公开的了?

是的,该帖子似乎是公开的。我已在火狐浏览器的隐私模式下测试过。