在给定状态ID的iPython Notebook中嵌入推文

时间:2015-03-26 19:27:37

标签: javascript twitter embed ipython-notebook

通过仅提供状态ID或URL,我只想在我的iPython Notebook中很好地呈现推文(即Twitter cards格式)。只需将链接放入帖子即可在WordPress中轻松实现。

首先,尝试了Twitter提供的嵌入代码,当点击状态页面上的“更多”>“嵌入推文”按钮时出现。成功插入NB但嵌入代码包含推文文本(我不想进入推特状态页面并点击我想要显示的每条推文的按钮,而是寻找一种自动执行此过程的方法):

HTML('<blockquote class="twitter-tweet" lang="en"><p>Sen. Joni Ernst of Iowa is set to give the Republican response to the President&#39;s <a href="https://twitter.com/hashtag/CNNSOTU?src=hash">#CNNSOTU</a>. <a href="http://t.co/PXWVbNsWXp">http://t.co/PXWVbNsWXp</a></p>&mdash; 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的经验,所以请在你的答案中考虑到这一点。感谢。

1 个答案:

答案 0 :(得分:1)

您可以先通过某种方式下载它(如下所示是我使用的%下载魔法),然后使用iframe。

IFrame with local html page