當今最全面可用的微博分享組件嵌入方法(親測2019年2月仍有效)
當今最全面可用的微博分享組件嵌入方法(親測2019年2月仍有效)
最近一直在找一種目前可用的微博分享組件的使用方法,發現有3個大坑:
- 向網頁嵌入微博秀時,需要的uid簡單,但需要的verifier值有點難獲取,原因在於原生成微博秀頁面的 url 及其子鏈接均會被強制從http重定向跳轉到https,此外其response中部分css引用失敗導致頁面無法完整顯示;
- https頁面是沒法調用http下的js和css的;
- 微博秀是需要用iframe來嵌入的,博客園默認不支持iframe標簽,可通過構造字符串的方式添加iframe來解決,也可以直接用embed標簽替換掉iframe。
對於微博第5版(weibo v5),其相應的微博組件的網址為: https://open.weibo.com/widgets ,
下面來介紹我解決向博客園中成功嵌入微博秀且在http/https下均能顯示的方法:
1.獲取微博秀的參數uid和verifier
使用Chrome打開微博登錄頁面 https://weibo.com, 然後打開微博秀頁面 https://app.weibo.com/tool/weiboshow ,接下來按F12,點擊開發者工具導航欄中的Source。
選擇灰色的那個點開,就可以看到相應的html代碼:
然後另存為weiboshow.html放在本地,
最後修改代碼中光標處的https為http,接著使用Chrome瀏覽器打開本地的weiboshow.html,此時在左下角的框框中已出現uid和verifier。
2.對於第2個問題,為使得微博秀既能在http 和https形式(分別對應於https://www.cnblogs.com/enjoy233 和 http://www.cnblogs.com/enjoy233)下訪問博客均能使用,方法也很簡單。
將從網頁左下角復制到的代碼中的src="http://" 改為src="//" 即可。
3.解決問題3目前已知如下3種方法(以上述截圖上微博的uid=2606405674&verifier=d5cf5ffc為例):
相應代碼為:
<embed width="100%" height="550" class="share_self" scrolling="no" src="//widget.weibo.com/weiboshow/index.php?language=&width=0&height=550&fansRow=2&ptype=1&speed=0&skin=1&isTitle=1&noborder=1&isWeibo=1&isFans=1&uid=2606405674&verifier=d5cf5ffc&dpc=1"></embed>
b.使用JavaScript去動態拼接iframe,相應代碼為:
<div id="weiboshow">
<script type="text/javascript">
var weibocode = '<if'
weibocode += 'rame width="100%" height="550" class="share_self" frameborder="0" scrolling="no" src="//widget.weibo.com/weiboshow/index.php?language=&width=0&height=550&fansRow=2&ptype=1&speed=0&skin=1&isTitle=1&noborder=1&isWeibo=1&isFans=1&uid=2606405674&verifier=d5cf5ffc&dpc=1"></iframe>';
document.getElementById('weiboshow').innerHTML = weibocode;
</script>
</div>
將其貼進公告即可。
c.將微博v5的版本應用到微博秀上,直接使用微博官方提供的wb.js來解決,該方法微博v5的組件接口中"贊同"就是類似的(參看網頁
https://open.weibo.com/widget/like.php 末尾)。
<html xmlns:wb="//open.weibo.com/wb">
<script src="//tjs.sjs.sinajs.cn/open/api/js/wb.js" type="text/javascript" charset="utf-8"></script>
<wb:show uid="2606405674" width="850" verifier="d5cf5ffc"></wb:show>
最後一步還是將其貼進公告。
ps: 點贊按鈕的相應代碼為:
<html xmlns:wb="//open.weibo.com/wb">
<script src="//tjs.sjs.sinajs.cn/open/api/js/wb.js" type="text/javascript" charset="utf-8"></script>
<div>
<wb:follow-button uid="1763628267" type="red_3" width="100%" height="90"></wb:follow-button>
</div>
對於上述方法,讀者只需將uid=2606405674&verifier=d5cf5ffc換為自己微博的相應值即可。
好啦,此時所以的問題都解決了,希望對君有用。至於豆瓣秀就很簡單了,打開豆瓣收藏秀 https://www.douban.com/service/badgemaker,將相應的js貼到公告中即可~
原創不易,記得支持一下喔~
當今最全面可用的微博分享組件嵌入方法(親測2019年2月仍有效)