日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue實現將自己網站(h5鏈接)分享到微信中形成小卡片的超詳細教程

瀏覽:170日期:2022-06-01 14:42:13
目錄
  • 最新更新
  • 前言
  • 準備工作
  • 前端業務實現(超詳細)
  • 后端代碼實現(超詳細)
  • 總結

最新更新

2022年12月24日23:58:30

發現了個問題,解決了好久,問題如下:

當我直接將鏈接發送到微信中的時候,然后打開,發現分享出去還是個鏈接。當我將鏈接分享到QQ時,發現是自定義卡片形式。我將QQ的卡片在分享到微信里面時,打開分享到微信,是自定義卡片形式。

這個問題看了好久,淘寶找人花80沒有解決,退款給我了,各大技術群問了個遍,也沒有解決,CSDN懸賞問答,也未能解決,最后發現是:
微信不支持直接進去鏈接分享,不然分享的還是鏈接,需要從微信的入口進去,比如先將內容生成二維碼,然后掃描進去在分享,就可以了!!!

前言

我們在分享公眾號信息到微信或者群中的時候,會出現一個小卡片,如下所示:

但是呢,這種小卡片只能走微信的接口來實現,比如我們從公眾號、小程序中分享的內容可以是這樣的。如果我們將自己的博客分享到微信的話,只會出現個鏈接。

那么,試問一下你,分享出來個這樣的鏈接,你會去點嗎?會不會以為這就是個釣魚鏈接。

今天,我們就來看看,如何將我們自己的站,搞一個和微信一樣的分享卡片出來。

準備工作

  • 注冊一個公眾號,該公眾號需要能認證的(企業認證)
  • 準備好你的站,前端展示的是vue,別的可以自己對應的轉換。
  • 后端用java實現的,別的語言自己轉換一下即可。

請注意,公眾號可以是訂閱號,也可以是服務號,但是必須是需要企業可以認證的,個人雖然說有的也可以認證,但是沒有調用分享接口的權限。

前端業務實現(超詳細)

weixin-js-sdk幫助文檔在這里,可以提現看看,免得后面看到之后,顯得那么陌生~

下面我們來介紹一下實現步驟:

打開微信公眾平臺,在“公眾號設置”的“功能設置”里填寫“JS接口安全域名”。

不設置會被攔截,沒法使用,大家可以仔細看看是如何設置的,第三點最重要:

在【基本配置】里面,配置一下你的ip白名單,不設置沒法獲取access_token,沒有toekn,一切都免談。

3. 在vue項目中,安裝weixin-js-sdk的依賴:

npm install weixin-js-sdk --save

在需要分享的vue頁面中寫代碼,先引入安裝好的依賴。

// 引入wxjsimport wx from "weixin-js-sdk"; 

methods中實現分享的功能:

getShareInfo() {      //獲取url鏈接(如果有#需要這么獲取)      var url = encodeURIComponent(window.location.href.split("#")[0]); 		//獲取url鏈接(如果沒有#需要這么獲取)     // var url = encodeURIComponent(window.location.href);      getSing(url).then(res => {wx.config({  debug: false, // 開啟調試模式,調用的所有 api 的返回值會在客戶端 alert 出來,若要查看傳入的參數,可以在 pc 端打開,參數信息會通過 log 打出,僅在 pc 端時才會打印。  appId: res.data.appId, // 必填,公眾號的唯一標識  timestamp: parseInt(res.data.timestamp), // 必填,生成簽名的時間戳  nonceStr: res.data.nonceStr, // 必填,生成簽名的隨機串  signature: res.data.signature, // 必填,簽名  jsApiList: [    "updateAppMessageShareData",    "updateTimelineShareData"  ] // 必填,需要使用的 JS 接口列表});wx.ready(() => {  var shareData = {    title: "每日新聞",    desc: "2022年12月20日21:47:55每日新聞",    link: window.location.href,    imgUrl: "https://blogobs.88688.team/blog/l-logo-y.jpg"  };  //自定義“分享給朋友”及“分享到QQ”按鈕的分享內容  wx.updateAppMessageShareData(shareData);  //自定義“分享到朋友圈”及“分享到 QQ 空間”按鈕的分享內容(1.4.0)  wx.updateTimelineShareData(shareData);});//錯誤了會走 這里wx.error(function (res) {  console.log("微信分享錯誤信息", res);});      });    },

代碼說明:

  • url 是我們要分享頁面的鏈接,需要傳遞到后端進行加密簽名(后端的代碼我們待會兒看)
  • getSing方法是后端進行簽名的方法,安全起見,所有config初始化中的關鍵信息,都從后端往回拿。
  • jsApiList是我們需要實現的功能的方法列表,逗號隔開。

created中調用一下getShareInfo方法:

// 調用分享的事件    this.getShareInfo();

前端內容就這些,下面我們看看后端做了哪些操作。

后端代碼實現(超詳細)

獲取token:為什么要獲取token,微信公眾號開發中,不管你做啥操作,都需要這個token,并且有效時間是7200s,也就是兩個小時,兩小時后就失效,下面是java中獲取token的代碼:

 /**     * 獲取access_token的值     * @return     */    @GetMapping("/getToken")    public String getToken() {String token = "";String path = "token?grant_type=client_credential&appid=" + APPID + "&secret=" + APPSECRET;String body = HttpUtil.createGet(WX_GZH_API + path).execute().body();log.info("獲取了token,返回數據" + body);JSONObject object = JSON.parseObject(body);//獲取tokentoken = object.getString("access_token");//失效時間String expires_in = object.getString("expires_in");//將token值的值放在redis里面redisService.setCacheObject("gzh_access_token", token,7190,TimeUnit.SECONDS);return token;    }

WX_GZH_API :

//公眾號請求的地址    public static String WX_GZH_API = "https://api.weixin.qq.com/cgi-bin/";

APPID APPSECRET換成你自己的就行。

獲取api_ticket,這個是用在簽名里面的,直接請求接口獲取就行。

/**     * 獲取jsapi_ticket     * @return     */    @GetMapping("/getJsapiTicket")    public String getJsapiTicket() {//獲取redis里面的tokenObject access_token = redisService.getCacheObject("gzh_access_token");if (access_token==null) {    access_token = getToken();}String path = "ticket/getticket?access_token=" + access_token.toString() + "&type=jsapi";String body = HttpUtil.createGet(WX_GZH_API + path).execute().body();log.info("獲取了JsapiTicket,返回數據" + body);JSONObject object = JSON.parseObject(body);//獲取ticketString ticket = object.getString("ticket");//錯誤碼Integer errcode = object.getInteger("errcode");if(errcode==0){    //將ticket值的值放在redis里面    redisService.setCacheObject("gzh_ticket", ticket,7190,TimeUnit.SECONDS);}return ticket;    }

這兩個方法我都寫了緩存,和是失效時間,并且在用的時候都會去判斷緩存里面有沒有值,沒有的話,我們再去請求重新獲取,而不是每次都請求獲取,這樣會造成接口請求頻繁受到限制的問題。

開始簽名:

    /**     * 開始簽名     */    @GetMapping("/getSing")    public ResponseResult getSing(String url){//從redis里面獲取ticketObject ticket = redisService.getCacheObject("gzh_ticket");if(ticket==null){    ticket = getJsapiTicket();}Map<String, String> ret = WeChatUtils.sign(ticket.toString(), url);JSONObject objectData = new JSONObject();for (Map.Entry entry : ret.entrySet()) {    objectData.put(entry.getKey().toString(),entry.getValue());}objectData.put("appId", APPID);return ResponseResult.success(objectData);    }

簽名的幾個工具類如下所示:

//******************************************    // 公眾號網頁開發    //******************************************    public static Map<String, String> sign(String jsapi_ticket, String url) {Map<String, String> ret = new HashMap<String, String>();String nonce_str = create_nonce_str();String timestamp = create_timestamp();String string1;String signature = "";//注意這里參數名必須全部小寫,且必須有序string1 = "jsapi_ticket=" + jsapi_ticket +"&noncestr=" + nonce_str +"&timestamp=" + timestamp +"&url=" + url;System.out.println(string1);try{    MessageDigest crypt = MessageDigest.getInstance("SHA-1");    crypt.reset();    crypt.update(string1.getBytes("UTF-8"));    signature = byteToHex(crypt.digest());}catch (NoSuchAlgorithmException | UnsupportedEncodingException e){    e.printStackTrace();}ret.put("url", url);ret.put("jsapi_ticket", jsapi_ticket);ret.put("nonceStr", nonce_str);ret.put("timestamp", timestamp);ret.put("signature", signature);return ret;    }    private static String byteToHex(final byte[] hash) {Formatter formatter = new Formatter();for (byte b : hash){    formatter.format("%02x", b);}String result = formatter.toString();formatter.close();return result;    }    private static String create_nonce_str() {return UUID.randomUUID().toString();    }    private static String create_timestamp() {return Long.toString(System.currentTimeMillis() / 1000);    }

加密簽名接口請求如下:

然后我們就實現了,你試試你的可以不。

總結

到此這篇關于vue實現將自己網站(h5鏈接)分享到微信中形成小卡片的文章就介紹到這了,更多相關vue將網站分享到微信小卡片內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品一区二区三区免费观影| 久久激情网站| 日韩久久精品| 欧美精品中文字幕亚洲专区| 偷拍欧美精品| 亚洲国产成人二区| 亚洲爱爱视频| 狠狠久久伊人中文字幕| 国产伦精品一区二区三区视频| 国产一区日韩一区| 久久久久免费| 久久久久九九精品影院| 日本欧美一区二区| 免费日本视频一区| 蜜臀久久99精品久久久久宅男 | 国产日本精品| 国产欧美激情| 精品国产亚洲一区二区在线观看| 成人在线视频区| 色偷偷色偷偷色偷偷在线视频| 精品一区视频| 色婷婷综合网| 久久精品青草| 99视频在线精品国自产拍免费观看| 亚洲精品一区二区妖精| 国产午夜精品一区二区三区欧美 | 欧美国产日本| 精品国产美女a久久9999| 欧美好骚综合网| 色一区二区三区| 樱桃成人精品视频在线播放| 亚洲伊人精品酒店| 国产探花在线精品| 国产盗摄——sm在线视频| 久久精品亚洲人成影院| 国产精品三上| 欧美日韩va| 日韩毛片视频| 丝袜亚洲精品中文字幕一区| 欧美日韩调教| 日韩一区二区三区免费播放| 亚洲一区日本| 国产欧美日韩精品高清二区综合区| 欧美激情另类| 不卡在线一区二区| 97久久亚洲| 国产在线观看www| 欧美专区18| 国产欧美成人| 亚洲二区免费| 国产一级成人av| 亚洲精品.com| 亚洲精品乱码久久久久久蜜桃麻豆| 久久中文欧美| 狠狠爱成人网| 久久久91麻豆精品国产一区| 欧美肉体xxxx裸体137大胆| 日韩成人在线看| 香蕉成人av| 亚洲乱亚洲高清| 日韩电影免费网址| 日韩国产欧美一区二区三区| 国产在线观看www| 亚洲资源网站| 蜜桃精品在线| 亚洲三级av| 超碰在线99| 不卡一区综合视频| 国产精品日本一区二区不卡视频| 日韩欧美中文| 日韩av二区在线播放| 首页国产精品| 蜜臀久久久久久久| 精品香蕉视频| 国产偷自视频区视频一区二区| 国产精品免费精品自在线观看| 久久中文字幕av| 国产精品高潮呻吟久久久久| 不卡在线一区二区| 麻豆91小视频| 影音先锋久久精品| 欧美一区二区三区高清视频| 精品中国亚洲| 日韩av资源网| 亚洲精品小说| 中国字幕a在线看韩国电影| 91欧美极品| 国产一区成人| 丝袜av一区| 国产精品高清一区二区| 99国产精品视频免费观看一公开| 国产成人免费| 国产精品欧美在线观看| 蜜臀av亚洲一区中文字幕| 中文另类视频| 国产成人免费精品| 国产精品伊人| 日韩精品欧美成人高清一区二区| 亚洲电影在线| 毛片在线网站| 国产在线一区不卡| 国产精品亲子伦av一区二区三区| 日韩在线一区二区| 精品1区2区3区4区| 性欧美videohd高精| 精品视频一区二区三区在线观看| 欧美片网站免费| 日本不卡一区二区| 亚洲精选av| 麻豆久久精品| 国产精品免费看| 午夜精品网站| 午夜日韩在线| 伊人久久成人| 国产综合视频| 久久久久免费av| 日韩在线精品| 日韩欧美中文| 欧美精品高清| 成人亚洲一区二区| 国产美女高潮在线| 久久亚洲国产精品尤物| 国产伦理久久久久久妇女| 欧美久久一区二区三区| 久久国产人妖系列| 国产精品天天看天天狠| 国产精品欧美在线观看| 国产日产一区| 另类欧美日韩国产在线| 麻豆精品99| 国产一区二区三区免费在线 | 日韩高清电影一区| 亚洲无线观看| 亚洲最大av| 精品国产乱码久久久久久樱花| 国产精品毛片久久久| 国产精品久久久久久久久免费高清 | 欧美日韩国产一区精品一区| 欧美13videosex性极品| 韩国三级一区| 91精品一区二区三区综合| 久久九九电影| 欧美特黄一区| 亚洲婷婷丁香| 国产三级一区| 美女精品久久| 在线人成日本视频| 欧美日韩一二| 在线一区二区三区视频| 欧美色综合网| 久久久久久色| 久久影院资源站| xxxxx性欧美特大| 九九色在线视频| 久久视频精品| 视频一区二区国产| 亚洲精品第一| 精品中文字幕一区二区三区四区| 亚洲黄色中文字幕| 天堂资源在线亚洲| 日韩专区欧美专区| 欧美国产极品| 日韩专区精品| 亚洲欧美高清| 日韩一区二区三区精品视频第3页| 欧美日韩亚洲一区三区| 福利片在线一区二区| re久久精品视频| 亚洲精品一级二级三级| 免费视频久久| 国产欧美三级| 久久久精品日韩| 蜜乳av另类精品一区二区| 欧美亚洲一级| 中文字幕系列一区| 亚洲精品观看| 日本一区二区免费高清| aa亚洲婷婷| 久久的色偷偷| 午夜日韩av| 久久99蜜桃| 1024精品久久久久久久久| 91亚洲无吗| 伊人久久在线| 亚洲男人在线| 肉色欧美久久久久久久免费看 | 免费在线亚洲欧美| 三级精品视频| 日韩精品一页| 久久精品亚洲欧美日韩精品中文字幕| 日本欧洲一区二区| 精品精品国产三级a∨在线| 日韩午夜在线| 日韩免费精品| 色一区二区三区| 丝袜国产日韩另类美女| 精品99在线| 婷婷精品在线| 婷婷国产精品| 日韩不卡一区二区三区|