通过仅提供状态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'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的经验,所以请在你的答案中考虑到这一点。感谢。
答案 0 :(得分:1)
您可以先通过某种方式下载它(如下所示是我使用的%下载魔法),然后使用iframe。