Twitter 原生嵌入

曾几何时有 Reddit,但采用了同样的方法。讨论确实处于风险之中*(没有人倾听,直到为时已晚,就像几乎总是那样)*。

我们确实拥有 Discourse :slight_smile:

1 个赞

这是一个功能。为了防止在编辑时多次请求 iframe,我不允许在撰写时启用该组件。

6 个赞

安装此程序后,我注意到当我进入一个帖子时,它首先会带我到“最后一帖”,然后 Twitter 嵌入功能会加载,并且每次都会将我拉回几帖。

有解决办法吗?

2 个赞

我们仍然遇到一个问题……什么都无法嵌入,但似乎一切都已设置好……有什么想法吗?

1 个赞

此主题组件不使用 Twitter API,您在这方面不会受到限制。

1 个赞

Twitter 的 onebox 已根据此提交进行了更改:FIX: Use Twitter API v2 for oneboxes and restore OpenGraph fallback (… · discourse/discourse@24c9053 · GitHub

我在我的测试实例上试用了这个主题组件,但它不显示媒体:

这有关联吗?

1 个赞

此主题组件仅在 onebox 不起作用时才有效

1 个赞

好的 :+1:

我测试了一下,如果 onebox 工作不正常(例如,不显示媒体),那么你必须在 blocked onebox domains 中添加 twitter.com 才能使该组件正常工作。:slight_smile:

从:

到:

我没有广泛使用该主题组件,也没有遇到这个问题,但我的猜测是,Discourse 在内容加载之前不知道 Twitter iframe 的高度。当 iframe 加载时,它会推动其周围的内容,从而产生这种行为。

你能录制一个视频吗?

2 个赞

推文的那个盒子又开始工作了,覆盖了这个组件。今天有人注意到这个情况吗?

我大约在 10 小时前进行了应用重建,当前版本是 3.1.0.beta5 (09feb03056)

所以这可能与突然恢复有关。

我其实更喜欢这个组件处理推文的方式。有没有办法现在排除推文不被 onebox?

我在设置中看到 allowed onebox iframes,但我无法列出所有可能的 src 来排除 Twitter,有没有办法通过这种方式禁用一个或几个 src?如果没有,可以考虑添加这个功能吗?

否则,一定是 Twitter 方面又有什么变化了,这只是巧合。

其他人有注意到这个情况吗?@Lhc_fl

1 个赞

@jancernik 已经根据最近 Twitter 的 API 更改修复了 :raised_hands:

是的,完全正确。这就是为什么我们在 Discourse 核心中不使用“官方”Twitter embed 的原因——它会导致主题在 iframe 加载时跳来跳去。

4 个赞

哎呀,我早该看看最后几帖的!:melting_face:

3 个赞

是的,跳跃在主题中非常显眼,但说实话,我更喜欢原生的 Twitter 样式以及在回复中捕获父推文。

这可以节省发布两个 Twitter 链接,是的,有时会被裁剪,但我不会对组件作者有任何意见,我很感谢替代解决方案,任何改进都是锦上添花。

3 个赞

这正是我认为它又会这样的时候,我记得它在各种构建中都出现过 Discourse jumps back 20 posts in post history when navigating to new topic

1 个赞

有什么方法可以减小跳动吗?如果加载的页面中有多个 Twitter 链接,这会非常明显且令人讨厌。我查看了插件代码,并快速浏览了它正在使用的 API,估计内容的高度并将其设置为 blockquote 元素的高度是否有助于减少跳动,或者这是否基本上取决于异步调用的 Twitter JavaScript?我对 Discourse API 不熟悉,因此我不知道事物的渲染顺序等,也没有时间去深入研究以确定是否有任何合理的方法可以做到这一点。

1 个赞

这个解决方案对我来说还不够,所以我将添加一些内容

我们需要在 twitter consumer keytwitter consumer secret 中添加一些内容(真的,任何随机内容都可以)

你可能仍然保留了旧的 API

然后主题组件将再次正常工作

2 个赞

我认为我没有,但Twitter经常改变其软件的行为(甚至是我们通过curl获得的结果)。鉴于此,如果你最近有不同的体验,我不会感到惊讶。

2 个赞

总结一下,您是否使用了启用了消费者密钥的主题组件,并将 twitter.com 放在了被阻止的 oneboxed 域名中?

据我回忆,Twitter 在 onebox 阻止的域名列表中,并且我在管理员中没有使用任何 Twitter 凭据。
此后我没有再尝试过该组件。

在最新的 3.6.0.beta6 更新中,Twitter 嵌入又回到了 Onebox,尽管 twitter.com 已在设置的 blocked_onebox_domains 中。

onebox 域阻止在 beta5 中已足够,因此无论最新更新做了什么,上面的额外建议都奏效了,让该组件重新渲染推文。