1. 程式人生 > >當今最全面可用的微博分享組件嵌入方法(親測2019年2月仍有效)

當今最全面可用的微博分享組件嵌入方法(親測2019年2月仍有效)

sha 重要 就是 alt href sel 大坑 鏈接 strong

當今最全面可用的微博分享組件嵌入方法(親測2019年2月仍有效)

最近一直在找一種目前可用的微博分享組件的使用方法,發現有3個大坑:

  1. 向網頁嵌入微博秀時,需要的uid簡單,但需要的verifier值有點難獲取,原因在於原生成微博秀頁面的 url 及其子鏈接均會被強制從http重定向跳轉到https,此外其response中部分css引用失敗導致頁面無法完整顯示;
  2. https頁面是沒法調用http下的js和css的;
  3. 微博秀是需要用iframe來嵌入的,博客園默認不支持iframe標簽,可通過構造字符串的方式添加iframe來解決,也可以直接用embed標簽替換掉iframe。

對於微博第5版(weibo v5),其相應的微博組件的網址為: https://open.weibo.com/widgets ,

及其具體使用方法為: 微博秀-新浪微博JSSDK官方網站,而對於微博第4版(weibo v4),相應的微博組件的網址為: http://app.weibo.com/tool ,相比之下第5版的組件中丟失了第4版中很重要的"微博秀"組件.

下面來介紹我解決向博客園中成功嵌入微博秀且在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為例):

a.復制左下角的代碼,在其基礎上 將iframe改為embed,刪除 frameborder="0",貼進公告即可,
相應代碼為:

<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月仍有效)