从 10 月 24 日开始,Facebook 将停止支持未经身份验证的 WordPress 嵌入。因此,如果您要在 WordPress 网站上嵌入 Facebook 和 Instagram 内容,它们就会崩溃。

免费试用

更具体地说,旧的 Facebook oEmbed 端点已被要求通过 Facebook 的新端点替换以进行身份​​验证。由于 Facebook 拥有 Instagram,因此相同的要求适用于 Instagram oEmbed 端点。

在本文中,我们将了解 WordPress 如何使用 Facebook 和 Instagram 的 oEmbed 端点、正在更新的内容以及如何修复问题以使您的嵌入看起来像它们应该的那样。

准备好了!

WordPress 如何使用 oEmbed 嵌入内容

oEmbed 是一种允许站点仅使用 URL 嵌入来自其他第三方站点的内容的协议。其主要目的是避免从其他站点复制粘贴 HTML。 WordPress 使用 oEmbed 来显示嵌入的内容(例如照片或视频)。

您需要做的就是将资源 URL 放在内容区域,WordPress 会自动将其转换为嵌入并显示其实时预览。

仅用于WordPress URL嵌入内容

在上面的示例中,我粘贴了一个 YouTube 视频链接,WordPress 自动将其转换为嵌入视频。 oEmbed 协议是 WordPress 的支柱,用于嵌入来自各种社交媒体平台的多种类型的内容,例如视频、图像、更新等。

尽管 WordPress 允许您嵌入来自任何已注册 oEmbed 提供商的经过净化的 iframe,但出于安全原因,它不会默认嵌入所有这些 iframe。默认情况下,它仅嵌入某些已批准的 oEmbed 提供商的 URL。

受信任的 WordPress 嵌入式服务提供商列表包括大多数流行的内容托管和社交网站,例如 Imgur、Facebook、Instagram、Tumblr、YouTube、Vimeo 等。这些提供商可以嵌入任何内容,例如视频、iframe、JavaScript,甚至是随机 HTML。

Facebook 和 Instagram 嵌入端点(旧版)

Facebook 和 Instagram o 嵌入端点是将 Facebook 和 Instagram 内容嵌入您的 WordPress 网站的基础。

如何嵌入Facebook内容在 WordPress 的一个示例中,

Facebook oEmbed 端点允许 WordPress 不仅提取主要内容,还提取元数据,例如页面名称和徽标、日期和时间、缩略图、点赞数、评论和共享,以及源的 URL。

WordPress如何嵌入Instagram内容示例

嵌入来自 Instagram 的内容也是如此。您不仅可以看到嵌入的图像,还可以看到与其相关的重要元数据信息。

新的 Facebook 和 Instagram“嵌入”端点

Facebook 最近宣布将从 2020 年 10 月 24 日起弃用其现有的 oEmbed 端点。他们现在将这些遗留端点称为遗留 oEmbed 端点.

到 2020 年 10 月 24 日,开发人员在通过 UID、FB OEmbeds 和 IG OEmbeds 查询图形 API 以获取用户个人资料图片时,必须使用用户、应用程序或客户端令牌。通过 UID 或 ASID 查询个人资料图片时,开发人员应提供用户或应用程序令牌,但也支持客户端令牌。请访问我们的 Userimage、Facebook OEmbed 和 Instagram OEmbed 变更日志,了解有关如何立即开始调用这些 Graph API 端点的更多信息。
– Developer Facebook

您现在需要利用 Facebook oEmbed API

与 oEmbed 的开放 Web API 性质相比,新的 Facebook oEmbed API有各种要求:

我们发现使用 WordPress 的流量增加了 1,187%。
我们会告诉你怎么做。

加入 20,000 多人的行列,他们每周都会收到有关 WordPress 内幕消息的消息!

立即订阅!感谢您订阅

您将在一周内收到下一个 Kinsta 新闻。

订阅 Kinsta 时事通讯订阅我同意条款和条件以及隐私政策

  • 您需要有一个 Facebook 开发者帐户。
  • 然后您需要有一个注册的 Facebook 应用程序来生成一个唯一的应用程序 ID。
  • 接下来,您必须为已注册的应用程序启用 oEmbed 产品。
  • 然后您必须生成应用程序访问令牌或客户端访问令牌。
  • 最后,您必须将 Facebook 应用程序设置为直播模式。

为响应这些新要求,WordPress 正在删除 Facebook 和 Instagram 作为受信任的嵌入式来源。

我们希望 WordPress 的下一个主要更新将包含这些更改。如果您使用的是 Gutenberg 插件,最新的 Gutenberg 9.0 版本已经取消了对它们的支持。

旧的 Facebook 和 Instagram 嵌入会发生什么变化?

WordPress 将 oEmbed 响应缓存在其数据库中的帖子元或隐藏的 oembed_cache 帖子类型下(目前仅在小部件中)。

由于WordPress默认不清除这些值,嵌入的内容将继续存在于您的网站上。

但是,如果您手动从数据库中删除它们,它们将被清除。因此,即使在弃用日期之后,您在 10 月 24 日截止日期之前添加的任何 Facebook 或 Instagram 嵌入内容仍将保留。

如何在 10 月 24 日之后嵌入 Facebook 和 Instagram 内容

如果您在旧的 oEmbed 端点被弃用后尝试嵌入 Facebook 或 Instagram 内容,您和您的用户可能会收到 HTTP响应中出现 400 错误。

为了帮助我们测试在截止日期后新的嵌入尝试将如何出现,Facebook 向旧版 oEmbed 端点添加了一个参数来模拟错误。我测试了一下,结果如下。

使用旧的Facebook oEmbed端点

Facebook 后备嵌入的模拟嵌入将作为简短摘录(最多 120 个字符)出现在 blockquote 中。它还将包含指向作者和原始来源的链接,但仅此而已。

除了链接之外,甚至没有提到 Facebook,点击会带你到 Facebook。

使用旧版Instagram oEmbed endpoint

相比之下,Instagram 的 fallback embed 更好,embed 结构几乎完好无损。

话虽如此,这是暂时的问题。一旦 WordPress 从其核心中删除了 Facebook 和 Instagram oEmbed 端点,旧的 oEmbed 端点将不再是一个问题。

嵌入 Facebook 和 Instagram 内容的唯一方法是遵守 Facebook 的要求。在下一节中,您将学习如何做到这一点。

如何修复 WordPress 中的 Facebook 和 Instagram 嵌入问题

将 Facebook 和 Instagram 嵌入恢复到 WordPress 的最简单方法是使用 Ayesh Karunaratne 提供的免费 oEmbed Plus 插件。它可以帮助您实施新的 Facebook oEmbed 端点,以在块编辑器中重新启用 Facebook 和 Instagram 嵌入功能。

oEmbed Plus WordPress插件

要开始使用它,请先安装并激活插件。

厌倦了 WordPress 问题和缓慢的托管?我们提供来自 WordPress 专家的 24/7 世界级支持和一流的快速服务器。查看我们的计划

注意:oEmbed Plus 需要 PHP 7.3 或更高版本才能运行。如果您当前的 WordPress 主机尚不支持 PHP 7.3+ 版本,我们强烈建议您寻找新的主机。

接下来,如果您还没有 Facebook,请创建一个 Facebook for Developers 帐户。然后,创建一个应用程序。就我而言,我将我的应用程序命名为“WordPress 站点”,但您可以随意命名。

开发者Facebook传送门在

中创建应用创建应用会自动为其生成一个应用ID。

您可以在“应用”面板下的“设置”→“基本”面板查看“应用ID”和“应用密钥”。记下这两个值,以备后用。

面向开发者的Facebook应用程序ID" 和 "Application Secret"

当您在这里时,还请设置隐私政策 URL 以使该应用程序生效。建议制定适当的隐私政策以避免您的应用程序被列入黑名单。

默认情况下,oEmbed 产品会自动启用,因此您可以保持原样。

接下来,转到 WordPress 仪表板中的设置 → 写作屏幕,然后搜索 Facebook 和 Instagram 嵌入设置部分。在这里,输入您之前记下的 App ID 和 App Secret 值。

配置oEmbed Plus插件设置

或者,您可以将 App ID 和 App Secret 添加到 wp-config.php 文件中。这是您需要使用的代码片段:

define('OEMBED_PLUS_FACEBOOK_APP_ID', '7168...app.id...789'); define('OEMBED_PLUS_FACEBOOK_SECRET', '20e5...app.secret...890xyz');

不要忘记将上面显示的值更改为您的值!完成后,保存文件。

如果您编辑 wp-config.php 文件来配置 oEmbed Plus,它会自动禁用 WordPress 仪表板中的“App ID”和“App Secret”表单字段。因此,您可以对其他用户保密您的应用程序凭据。

快到了!

所有新的 Facebook 和 Instagram 嵌入现在都将使用新的身份验证 API 将内容嵌入到 WordPress 网站中。

其他专用社交媒体插件(例如 Instagram Feed 和 Social Post Feed)也增加了对新的 Facebook oEmbed 端点的支持。然而,这些插件捆绑了很多功能,因此对于这个特定的用例,它们可能对您的网站来说是不必要的膨胀。如果您已经在使用它们,则可以查看它们。

Facebook 目前对新 API 的速率限制非常宽松。它们允许您每天提出多达 500 万个请求。由于 WordPress 在数据库中缓存了 oEmbed API 响应,因此嵌入不会触发除第一个请求之外的任何其他请求。您可以参考 Facebook 更新的 oEmbed 文档以获取更多信息。

总结

WordPress 是当今使用最广泛的 CMS。同样,Facebook 和 Instagram 是最受欢迎的社交媒体平台。因此,此更改可能会影响数百万个站点。

将社交媒体内容嵌入 WordPress 可以为您的网站访问者提供更独特的体验。从 2020 年 10 月 24 日开始,许多不知情的用户会发现嵌入 Facebook 和 Instagram 内容令人沮丧。我们希望本文能帮助您纠正 WordPress 中的 Facebook oEmbed 问题。

如果您仍然对 Facebook 和 Instagram 嵌入有疑问,请在评论中告诉我们!

如果您喜欢这篇文章,那么您一定会喜欢 Kinsta 的 WordPress 托管平台。加快您的网站速度,并从我们经验丰富的 WordPress 团队获得 24/7 全天候支持。我们基于 Google Cloud 的基础架构专注于自动缩放、性能和安全性。让我们向您展示 Kinsta 的不同之处!查看我们的计划