使用新浪微博开放平台api同步微博内容至自己网站( 微博秀-新浪微博第5版(weibov5))
优采云 发布时间: 2021-11-22 11:20使用新浪微博开放平台api同步微博内容至自己网站(
微博秀-新浪微博第5版(weibov5))
当今最全的微博分享组件嵌入方法(亲测2019年2月依然有效)
最近一直在找目前可用的微博分享组件的使用方法,发现有3个大坑:
在网页中嵌入微博秀时,需要的uid很简单,但是需要的verifier值有点难获取。原因是原微博展示页面的url和子链接会被强制从http重定向到https。另外,响应中的一些css引用失败,页面无法完全显示;https页面不能在http下调用js和css;微博秀需要嵌入iframe,博客园默认不支持iframe标签,可以通过字符构造解决这个问题,在字符串中添加iframe,也可以直接用embed标签替换iframe。
对于微博版本5(weibo v5),对应微博组件的URL为:/widgets,具体使用方法为:微博秀-新浪微博JSSDK官方网站,对于第四版微博(weibo v4),对应的微博组件的网址为:/tool ),相比之下,第五版的组件在第四版中失去了重要的“微博”组件。
下面是我在博客园成功嵌入微博秀并在http/https下展示的解决方法:1.获取微博秀的参数uid和verifier。使用Chrome打开微博登录页面,然后打开。微博展示页面/tool/weiboshow,然后按F12,在开发者工具导航栏中点击Source。
选择灰色的打开,可以看到对应的html代码:
然后保存为weiboshow.html放在本地,
最后将代码中光标处的https修改为http,然后使用Chrome浏览器打开本地的weiboshow.html。这时,uid和verifier已经出现在左下角的框中。
事实上,它不能作为本地 html 文件工作。在第二张图对应的html代码中搜索“$uid”、“$CONFIG.$checkKey”,取出=右侧的值就知道uid='2606405674'和verifier='d5cf5ffc'。
2.对于第二个问题,为了让微博秀可以同时使用http和https两种格式(分别对应/enjoy233和/enjoy233)),方法也很简单。将页面左下角复制的代码中的src="http://"改为src="//"。
3.目前已知有以下3种方法可以解决问题3(以上截图中的微博uid=2606405674&verifier=d5cf5ffc为例):复制左下角的代码,根据它把iframe改成embed,把frameborder="0"删掉,粘贴到公告里。对应的代码是:
湾 使用 html5 的另一个标签对象。
Embedded data failed to be displayed.
目前我的博客就是采用这种方式,在移动端可以正常显示~
C。使用JavaScript动态拼接iframe,对应代码为:
var weibocode = '';
document.getElementById('weiboshow').innerHTML = weibocode;
只需将其粘贴到公告中即可。
d. 将微博v5版本应用到微博秀上,直接使用微博官方提供的wb.js解决问题。这个方法类似于微博v5的组件界面中的“批准”(见最后的webpage/widget/like .php)。
最后一步是将其发布在公告中。亲测显示,后一种官方推荐的方式在移动端也能正常显示,但部分浏览器(例如:iPhone自带的Safari不显示)不支持iframe。
ps:点赞按钮对应的代码是:
以上方法读者只需将uid=2606405674&verifier=d5cf5ffc修改为自己微博对应的值即可。
如果偶尔出现以下问题,属正常现象,刷新即可解决。原因是官方微博API有时会失效。
好了,这个时候所有的问题都解决了,希望对你有用。至于豆瓣秀,就很简单了。打开豆瓣采集秀/service/badgemaker,将对应的js粘贴到公告中(同样需要将src="http://"改为src="//")。
关于微博API,今天学到了一个技巧——Redirect,提醒用户在未登录微博时登录:/signin/login?r=http%3a%2f%2flegge007.coding.me%2fBeautify- cnblogs%2fweiboWidgets%2fweiboshow手机版和PC版分享cookies~
原创不容易,记得支持哦~
本文首发于我的博园博客:/enjoy233/p/10349500.html。
原创这并不容易。您的支持和认可将使我能够写出更好的内容,更多。干燥。货物可以关闭~