"Onebox Assistant",可靠地抓取那些预览!

哎呀,下次重建的时候我会重新添加这个插件,希望只是暂时的怪异。再次感谢,很抱歉让您白跑一趟!

2 个赞

没关系,偶尔看看这个插件总归是好的。

借此机会,我对插件的结构进行了升级,并对覆盖项进行了一些小的调整,以适应核心代码中的一行更改(尽管在此之前它也能正常工作):

核心更改:discourse/lib/oneboxer.rb at main · discourse/discourse (github.com)

插件的新提交:IMPROVE: plugin structure, minor tweak to keep up with core · merefield/discourse-onebox-assistant@4c1d9bd (github.com)

3 个赞

更新以跟上 Discourse 解决重大变更的进度:

重大变更:DEV: Don’t patch Sanitize::Config · discourse/discourse@46176b7 · GitHub

解决方案:COMPATIBILITY: bring in line with changes to SanitizeConfig · merefield/discourse-onebox-assistant@8415e68 · GitHub

2 个赞

我正在尝试让这个网站实现 Onebox:

但是,在使用标准的 Discourse oneboxing 时,我得到了 403 代码:

我已确认它可以在 embed.rocks/try 上提供 onebox,并且确实可以:

embed.rocks/try 输出

因此,我设置了这个插件,并按照 OP 中的说明使用 Embed.rocks 帐户进行了配置。它在其他网站上运行良好,但对于 hinz.org.nz,我没有 onebox,并且在控制台中看到了这个:

image

我已仔细阅读了本主题,但找不到任何有帮助的内容。有什么建议吗?

2 个赞

那不是一个 Onebox。Onebox 是 Discourse 特有的,所以这并不能证明什么。Embed.rocks 正在使用各种特殊情况和变通方法,这与 Discourse 的做法不同。我们不使用它来生成卡片,所以这对我们来说无关紧要,这意味着你不能将其用作安全测试。我们只使用 embed.rocks 来返回原始页面源代码。

你是否在 FacebookMeta 的 Open Graph 检查工具 上检查过链接?有什么警告吗?

3 个赞

受您的帖子的启发,我利用周日的时间重构了插件,因为 Onebox gem 似乎已迁移到 Core。

我不认为这是您的问题,但由于我的覆盖正常工作,我认为现在它们更完善了。

如果您能更新并测试此版本(3.0),我将不胜感激:

COMPATIBILITY: improvements with changes to reflect onebox gem moving… · merefield/discourse-onebox-assistant@1d64888 (github.com)

3 个赞

您好!
我已经启用了插件,但无法让 Facebook 的 onebox 生效。这是预期中的吗?是我配置插件错误了吗?


编辑:curl 返回了著名的“登录或注册以查看”,并且没有创建框。
所以,embed.rocks 使用的 IP 没有足够高的 Facebook 声誉:man_shrugging:

1 个赞

是否有带 Facebook API 密钥的 Facebook 嵌入格式?

1 个赞

嗯……
我们当然可以嵌入一些 Facebook 帖子(仅限公开的用户个人资料,不含群组)……还有一个用于嵌入 Instagram 帖子的 API 密钥……
但我不知道还有其他什么了。但在开发者仪表板里可以找到一些东西,那地方简直是个迷宫 :man_shrugging:

1 个赞

您确定该链接指向的是公开的 Facebook 帖子吗?

1 个赞

为了结束这个问题,我完全忘记了:是的,帖子是公开的。

Facebook 预览在 2 年前还能用,之后就不能用了,可能是因为“不受信任的 IP”,配置他们的仪表板和维护这些功能很麻烦,最后我放弃了在我的论坛上处理 Facebook 功能。:weary:

3 个赞

你好 @merefield,这里有一些可能有用的反馈。

简而言之,我必须重启(重新启动 Discourse)才能让插件使用 embed.rocks。

我在一个用于升级站点的暂存服务器上安装了该插件。我输入了 embed.rocks 的 API 密钥。我启用了该插件并勾选了“始终使用代理”设置,但 Oneboxes 没有得到处理。

Sidekiq 作业似乎悄无声息地失败了,然后出现了一个新的计划作业——大概是重试?

Sidekiq 队列中没有堵塞 Oneboxing 的东西,所以我从命令行使用上面提到的“curl 到 BBC 网站”进行了检查,并且奏效了。所以我知道 embed.rocks 在线并且识别我的凭据。

我尝试禁用该插件——Oneboxes 又开始工作了——正如预期的那样,因为我的新暂存服务器还没有被列入黑名单。

我重新启用了该插件,但仍然遇到同样的问题——Oneboxes 不再工作。

最后,我重启了服务器,它就开始工作了!

有一个明显的延迟,所以我知道 Onebox 是通过 embed.rocks 运行的,尽管,恼人的是 embed.rocks 的仪表板似乎更新不够频繁(每月?)来显示我最近使用其服务的记录。

所以,长话短说,它看起来我需要重启/重新启动 Discourse 才能让插件按预期运行。

我知道这听起来不太可能,但我对自己观察到的行为相当确定。会不会是插件 monkey-patching 方法,从而在启用它之前就被“使用”了?

总之,现在一切都好了,所以我只是想分享一个奇怪的观察结果。

1 个赞

恐怕所有赌注都已失效:该插件急需更新到最新的 Discourse 代码库。我会尽快处理。

很高兴它对您有效,并且有一些有趣的见解!

我绝对会考虑接受 PR 来支持其他服务,但与竞争对手相比,Embed.rocks 的性价比似乎很高?

1 个赞

老实说,我只在需要重新生成大量帖子时才考虑使用 embed.rocks。日常的嵌入量通常还可以。

正如你所说,它的性价比很高。

很高兴知道。

一如既往,做得好!

2 个赞

昨天我跟进了核心代码并推送了一个更新:

但说实话,这其中大部分只是匹配了代码格式,改动非常少。

1 个赞

您好!我最近将论坛从 vbulletin 迁移到了 discourse。我的论坛使用了大量的 YouTube 和 Vimeo 嵌入式视频。我安装了一个插件来避免被屏蔽,该插件对 YouTube 有效,但无法显示 Vimeo 的海报。只有一个黑色背景的播放器。

在 embed.rocks 网站上,检查 Vimeo 视频时,我收到 429 错误。我在不同的浏览器、不同的提供商上都检查过,结果都一样。

这是我个人的问题,还是存在某种系统故障?

你是否已向他们的支持团队提出过这个问题?

你是说 Vimeo 支持团队?

不,embed.rocks

啊……谢谢!我以为是你的 API。
在 embed.rocks 上我只看到了邮箱地址,没有支持链接。
我会尝试给他们发邮件,但此时此刻,我只想弄清楚其他使用 embed.rocks API 的用户是否可以嵌入 Vimeo 视频,或者这只是我个人的问题?

我希望这个帖子里有人能在他们的 discourse 上检查一下这个功能。

你能看到这个视频的预览吗?看起来 Vimeo 在这里也不显示……
https://vimeo.com/103076330

我认为 meta.discourse 不使用 embed.rocks API,所以这可能不是 onebox 助手的问题?