Twitter 原生嵌入

它回来了,我的又消失了

抱歉,你能像给孩子解释一样完整地列出修复方法吗? :sweat_smile:

  1. 安装主题组件
  2. content security policy script src 设置中添加 https://platform.twitter.com/
  3. twitter.com 添加到 blocked onebox domains
  4. twitter consumer key 设置中添加任何内容
  5. twitter consumer secret 设置中添加任何内容

然后它应该可以工作

6 个赞

哦,我明白了,谢谢 Steven,有人知道如何修复原生的 Twitter 嵌入吗?它们目前在我的网站上只显示为链接,已经有一周了,或者这个组件是修复 Twitter 嵌入的唯一方法吗?

我忘记了一个步骤,将 twitter.com 添加到被阻止的 onebox 域名(针对其他域名)::man_facepalming: 我已经编辑了之前的帖子。

你能通过私信分享你的论坛链接吗(一个包含 twitter 链接的主题)?我想确认你是否启用了主题组件(有些人可能会忘记将其添加到他们的主题中),或者检查源消息(twitter 链接需要单独占一行)

2 个赞

可以确认 @Steven 提供的说明在我运行最新版本(3.1.0.beta6)的实例上有效

1 个赞

@Solarus 这也适用于带有附加图片的推文吗?

例如:https://twitter.com/droneswmp/status/1686451431006453760

这也对我有用。但是,作为最后一步,我不得不通过升级我的 Discourse 实例客户端来软重建我的实例。这似乎起到了启动作用。

我用嵌入视频的推文进行了测试,我可以在我的实例上检查这条特定的推文并回复。

@Richie 我尝试了你提供的推文示例,推文+图片显示正常,没有问题(我的语言是西班牙语)

有计划使用链接“http://x.com”进行嵌入吗?

2 个赞

谢谢您的提醒。我马上修复。

3 个赞

现在支持 x.com 作为链接。
值得注意的是,似乎 Twitter 本身尚未完全启用 x.com 域名。如果将来默认的分享链接更改为 x.com,我不知道链接格式和用于加载的 JavaScript 会发生什么变化。

6 个赞

第一个帖子可以编辑并附带正确的说明吗?

我正在尝试关注该主题,但有人建议将 twitter.com 添加到 onebox 的阻止域中,然后另一个人说不需要。然后又有人说删除 twitter api 密钥,还有人说向该字段添加任何内容……

我们的已经停止工作一段时间了,所以我们有点放弃了。

我们认为埃隆在搞什么鬼把戏,所以我们想等尘埃落定 :blush:

谢谢你的建议,我刚更新了说明。

3 个赞

我们在论坛上注意到,将推文放入 [quote] 块中可以使富媒体嵌入生效,否则只会显示文本。这可能是我们主题的某个问题,但我想还是把它留在这里,以防其他人遇到类似的行为。

您能尝试检查链接元素是否具有 onebox 类吗?
如果希望主题组件正常工作,则需要具有“onebox”类属性。

您是否尝试将 twitter.comx.com 添加到 blocked onebox domains

<a href="https://x.com/username/status/..." class="onebox">
3 个赞

我已将 twitter 和 x 添加到阻止的 onebox 域(最初忘记了 X),但奇怪的行为仍然存在。

关于 onebox CSS 类,我不知道应该在哪里看到它,因为例如使用这条推文:

https://twitter.com/SpoutLore/status/1715688928806944943

我只看到提交后的已烘焙帖子:

<aside class="onebox twitterstatus" data-onebox-src="https://twitter.com/SpoutLore/status/1715688928806944943">
  <header class="source"><svg class="fa d-icon d-icon-fab-twitter svg-icon svg-string" xmlns="http://www.w3.org/2000/svg">
    <use href="#fab-twitter">
    </use>
  </svg>

      <a href="https://twitter.com/SpoutLore/status/1715688928806944943" target="_blank" rel="noopener">twitter.com</a>
  </header>

  <article class="onebox-body">
    
<h4><a href="https://twitter.com/SpoutLore/status/1715688928806944943" target="_blank" rel="noopener">Spout Lore <span class="badge badge-notification clicks" title="1 click">1</span></a></h4>
<div class="twitter-screen-name"><a href="https://twitter.com/SpoutLore/status/1715688928806944943" target="_blank" rel="noopener">@SpoutLore</a></div>

<div class="tweet">
  <span class="tweet-description">🚨NEW EPISODE!!🚨

In this ep the gang takes a page out of Christopher Nolan's book and tries to incept the shit out of themselves to see if they can figure literally ANYTHING out.

Also, most of this episode happens at a $7.99 pizza hut lunch buffet.

https://t.co/gDtdYQOYao</span>
</div>

<div class="date">
  <a href="https://twitter.com/SpoutLore/status/1715688928806944943" class="timestamp" target="_blank" rel="noopener">

</a>


</div>

  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

或者,如果它在一个引用块中,则是这样:

<div class="twitter-tweet twitter-tweet-rendered" style="display: flex; max-width: 550px; width: 100%; margin-top: 10px; margin-bottom: 10px;"><iframe id="twitter-widget-13" scrolling="no" frameborder="0" allowtransparency="true" allowfullscreen="true" class="" style="position: static; visibility: visible; width: 550px; height: 786px; display: block; flex-grow: 1;" title="Twitter Tweet" src="https://platform.twitter.com/embed/Tweet.html?dnt=false&amp;embedId=twitter-widget-13&amp;features=eyJ0ZndfdGltZWxpbmVfbGlzdCI6eyJidWNrZXQiOltdLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X2ZvbGxvd2VyX2NvdW50X3N1bnNldCI6eyJidWNrZXQiOnRydWUsInZlcnNpb24iOm51bGx9LCJ0ZndfdHdlZXRfZWRpdF9iYWNrZW5kIjp7ImJ1Y2tldCI6Im9uIiwidmVyc2lvbiI6bnVsbH0sInRmd19yZWZzcmNfc2Vzc2lvbiI6eyJidWNrZXQiOiJvbiIsInZlcnNpb24iOm51bGx9LCJ0ZndfZm9zbnJfc29mdF9pbnRlcnZlbnRpb25zX2VuYWJsZWQiOnsiYnVja2V0Ijoib24iLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X21peGVkX21lZGlhXzE1ODk3Ijp7ImJ1Y2tldCI6InRyZWF0bWVudCIsInZlcnNpb24iOm51bGx9LCJ0ZndfZXhwZXJpbWVudHNfY29va2llX2V4cGlyYXRpb24iOnsiYnVja2V0IjoxMjA5NjAwLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X3Nob3dfYmlyZHdhdGNoX3Bpdm90c19lbmFibGVkIjp7ImJ1Y2tldCI6Im9uIiwidmVyc2lvbiI6bnVsbH0sInRmd19kdXBsaWNhdGVfc2NyaWJlc190b19zZXR0aW5ncyI6eyJidWNrZXQiOiJvbiIsInZlcnNpb24iOm51bGx9LCJ0ZndfdXNlX3Byb2ZpbGVfaW1hZ2Vfc2hhcGVfZW5hYmxlZCI6eyJidWNrZXQiOiJvbiIsInZlcnNpb24iOm51bGx9LCJ0ZndfdmlkZW9faGxzX2R5bmFtaWNfbWFuaWZlc3RzXzE1MDgyIjp7ImJ1Y2tldCI6InRydWVfYml0cmF0ZSIsInZlcnNpb24iOm51bGx9LCJ0ZndfbGVnYWN5X3RpbWVsaW5lX3N1bnNldCI6eyJidWNrZXQiOnRydWUsInZlcnNpb24iOm51bGx9LCJ0ZndfdHdlZXRfZWRpdF9mcm9udGVuZCI6eyJidWNrZXQiOiJvbiIsInZlcnNpb24iOm51bGx9fQ%3D%3D&amp;frame=false&amp;hideCard=false&amp;hideThread=false&amp;id=1715688928806944943&amp;lang=en&amp;origin=https%3A%2F%2Fnetgamers.it%2Ft%2Fusa-fascismo-e-polizia-part-2%2F836096%2F200&amp;sessionId=29bf06409a54fcadc10eb870158a5a32ae1772c3&amp;theme=light&amp;widgetsVersion=01917f4d1d4cb%3A1696883169554&amp;width=550px" data-tweet-id="1715688928806944943"></iframe></div>

在此处尝试此操作会显示相同的行为,媒体部分被省略(至少在我旁边的预览中可以看到):

这里的引用没有转换为完整的 iframe,我猜他们做了不同的事情,或者没有使用这个组件。

https://twitter.com/SpoutLore/status/1715688928806944943

是的,事实上使用 Twitter 的 iframe 是最后的选择。使用 iframe 有很多缺点。Discourse meta 不使用这个主题组件,我认为他们也不会使用。

这是在你的论坛上吗?看起来 Discourse 自带的富媒体嵌入起到了作用。我编写这个主题组件是为了那些因为无法访问 API 而无法使用富媒体嵌入的人。

我没有考虑到那些已经可以使用富媒体嵌入的论坛会使用这个主题组件。

1 个赞

这是一个我管理的论坛(不属于我)。我正在测试这个,因为 oneboxes 一段时间以来一直无法正常工作。