通过仅提供状态 ID 或 URL,我只是希望在我的 iPython Notebook 中很好地呈现推文状态(即以 Twitter cards 格式)。只需将链接放入帖子中,即可在 WordPress 中轻松实现此目的。
首先,尝试了 Twitter 提供的嵌入代码,当单击状态页面上的“更多”>“嵌入推文”按钮时会出现该嵌入代码。已成功插入 NB,但嵌入代码包含推文文本(我不想转到 Twitter 状态页面并单击我想要显示的每条推文的按钮,而是寻找一种自动执行此过程的方法):
HTML('<blockquote class="twitter-tweet" lang="en"><p>Sen. Joni Ernst of Iowa is set to give the Republican response to the President's <a href="https://twitter.com/hashtag/CNNSOTU?src=hash">#CNNSOTU</a>. <a href="http://t.co/PXWVbNsWXp">http://t.co/PXWVbNsWXp</a></p>— CNN Breaking News (@cnnbrk) <a href="https://twitter.com/cnnbrk/status/557737268488974338">January 21, 2015</a></blockquote><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>')
其次,尝试使用 iFrame 导入,但这返回了一个空的 iframe:
HTML('<iframe src=https://twitter.com/cnn/status/557737452346294274 width=700 height=350></iframe>')
出现此错误消息(注意:我还尝试将 &output=embed
附加到网址 suggested ):
Refused to display 'https://twitter.com/cnn/status/557737452346294274' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
第三,尝试将 Twitter 的 widgets.js 脚本添加到 NB 中: suggested :
from IPython.display import Javascript
Javascript('window.twttr = (function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs"));')
并期望通过调用看到(这可能是我做错的地方):
HTML('<iframe src=https://api.twitter.com/1.1/statuses/oembed.json?id=557737268488974338></iframe>')
但出现了这个错误:
{"errors":[{"code":215,"message":"Bad Authentication data."}]}
这应该是非常简单的事情。这可能就是为什么它还没有被问过的原因。我对 JS 没有经验,所以请在您的回答中考虑到这一点。谢谢。
最佳答案
您可以先通过某种方式下载它(如下所示是我使用的 %download 魔法),然后使用 iframe。
关于javascript - 在给定状态 ID 的 iPython Notebook 中嵌入推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29287219/