如何修复WordPress中的Facebook oEmbed问题

从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嵌入内容

在WordPress中仅使用URL嵌入内容

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

尽管WordPress允许您从任何已注册的oEmbed提供程序中嵌入经过消毒的iframe,但出于安全原因,默认情况下它不会全部嵌入它们。 默认情况下,它仅嵌入某些经过认可的oEmbed提供程序的URL。

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

Facebook和Instagram嵌入端点(旧版)

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

WordPress如何嵌入Facebook内容的示例

WordPress如何嵌入Facebook内容的示例

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

WordPress如何嵌入Instagram内容的示例

WordPress如何嵌入Instagram内容的示例

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

新的Facebook和Instagram“嵌入”端点

Facebook最近宣布自2020年10月24日起弃用其现有的oEmbed终结点。他们现在将这些旧终结点称为旧式oEmbed终结点。

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

您现在需要利用Facebook oEmbed API的优势

与oEmbed的开放Web API本质相反,新的Facebook oEmbed API具有各种要求:

使用WordPress,我们的流量增长了1,187%。
我们将向您展示如何。

加入20,000多个其他人,他们每周都会收到有关WordPress内部技巧的新闻!

立即订阅成功! 感谢您的订阅

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

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

  • 您需要拥有一个Facebook开发者帐户。
  • 然后,您需要具有注册的Facebook App才能生成唯一的App ID。
  • 接下来,您必须为注册的应用程序启用oEmbed产品。
  • 然后,您必须生成一个App Access令牌或一个Client Access令牌。
  • 最后,您必须将Facebook App设置为实时模式。

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

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

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

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

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

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

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

如果您在废弃旧的oEmbed终结点之后尝试嵌入Facebook或Instagram内容,则您和您的用户可能会收到HTTP 400错误作为响应。

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

使用旧版Facebook oEmbed端点的模拟嵌入

使用旧版Facebook oEmbed端点的模拟嵌入

Facebook的后备嵌入内容将以小段摘录(最多120个字符)的形式出现在块引用中。 它还将包含指向作者和原始来源的链接,但除此之外没有其他内容。

除了链接之外,甚至没有对Facebook的引用,单击可将您带到Facebook。

使用旧版Instagram oEmbed端点的模拟嵌入

使用旧版Instagram oEmbed端点的模拟嵌入

相比之下,Instagram的后备嵌入更好,嵌入结构几乎完好无损。

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

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

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

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

oEmbed Plus插件

oEmbed Plus WordPress插件

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

厌倦了WordPress问题和缓慢的主机? 我们提供全天候24/7的WordPress专家和一流的快速服务器提供的世界一流的支持。 查看我们的计划

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

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

在Facebook for Developers门户中创建应用程序

在Facebook for Developers门户中创建应用程序

创建应用程序将为其自动生成一个应用程序ID。

您可以转到“应用”信息中心下的“设置”→“基本”面板来查看“应用ID”和“应用秘密”。 记下这两个值,以备日后使用。

开发人员的Facebook“应用程序ID”和“应用程序秘密”

开发人员的Facebook“应用程序ID”和“应用程序秘密”

当您在这里时,也请设置隐私政策URL,以使该应用程序上线。 建议使用适当的隐私权政策,以免您的应用程序被列入黑名单。

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

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

配置oEmbed Plus插件设置

配置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仪表板中的“应用程序ID”和“应用程序秘密”表单字段。 因此,您可以使自己的应用程序凭据对其他用户保密。

差不多了!

现在,所有新的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的与众不同! 查看我们的计划

相关文章