微信JS-SDK開發 入門指南

目錄

前言

本身要作一個微信分享,通常來講,接第三方平臺就能夠了。可是如今的需求是能夠更改在分享的時候, 須要修改分享的時候顯示的標題和圖片。這個時候就涉及到須要調微信提供的接口了。在作的過程當中,以爲這個過程比較繁瑣,所以記錄下來,供人蔘考。
在看本文以前請務必已經將微信公衆平臺中的微信網頁開發下的微信JS-SDK說明文檔第一部分瀏覽一次。這樣,更容易明白我在說什麼。前端

本文僅針對微信網頁開發, 簡單的說明一下整個過程:算法

  1. 前端將當前頁面的url傳遞給後端,固然也能夠是後端直接獲取前端的url。
  2. 後臺根據前端頁面的url和相關的算法,生成一個簽名(signature), 並將生成簽名的其餘數據傳遞給前端,具體查看微信公衆平臺
  3. 當前端接受到後端傳回的數據後,就能夠經過config接口注入權限驗證配置了,一旦成功後, 微信端會彈出: errMsg: {config is ok}
  4. 調用微信的各類接口。

提供一個微信分享第三方平臺, 請搜索如何接入。vim

各類後臺生成signature的方法,微信公衆平臺已經提供了幾種語言的,若是你使用的是不一樣的語言,能夠根據提供的方法進行相應的修改。後端

提示: 報錯能夠查看微信公衆平臺上的解決方案。api

1. 過程

1.1 代碼

前端使用SDK的步驟:瀏覽器

componentDidMount() {
  const that = this;
  const url = encodeComponentURI(location.href);

  // 向後臺發送請求
  // url做爲參數傳遞到後臺去
  // () => {}, 當後臺返回數據後,調用回調函數
  this.props.actions.getSignaturePack(url, (obj) => {
    const {  signPackage } = obj;
    const { appId, timestamp, nonceStr, signature } = signPackage;

    // 參考微信公衆平臺: https://mp.weixin.qq.com/wiki
    // JSSDK使用步驟
    // 第一步: 填寫JS接口安全域名,請查看 2.1申請測試賬號
    // 第二步: 引入JS文件
    // 第三步: 經過config接口注入權限驗證配置
    wx.config({
      debug: true, // 調試模式, 請設置爲true
      appId,
      timestamp,
      nonceStr,
      signature,
      jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'],
    });

    // 第四步: 經過ready接口處理成功驗證
    wx.ready(() => {

      // 第五步: 判斷客戶端是否支持要使用的接口
      wx.checkJsApi({
        jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'],
        success: () => {
        },
      });

      // 第六步: 接口調用, 如分享給朋友
      const { displayLink, title, abstract } = this.props.state.detail;
      wx.onMenuShareAppMessage({
        title,
        desc: abstract,
        link: location.href,
        imgUrl: displayLink,
        type: '',
        dataUrl: '',
        success: () => {},
        cancel: () => {},
      });
    });
  });
}

1.2 代理

當你的代碼都完成的差很少的時候,你須要開始掃描微信二維碼進行測試,你卻發現掃出來的結果是網絡錯誤或者是其餘錯誤。這是因爲你在本地起的服務,而你用的第三方的平臺生成的二維碼,你的URL固然是localhost:8000之類的,因此你確定是掃不出來東西的。安全

所以你須要一個這樣的工具,在你起的本地服務,能夠映射到公網上去。固然,你也能夠本身搭建一個公網服務器,而後將你的項目放到服務器上,可是若是這麼作,你的測試就麻煩不少了。你每次的修改代碼都要上傳到服務器上去,固然,你也能夠直接在服務器上進行操做。說了這麼多,其實就是想推薦一個叫ngrok的代理工具給你,十分方便。它能夠將你本地起的一個服務映射到公網上去。服務器

1.2.1 下載

點擊ngrok官網, 根據你的系統下載相應的版本。因爲我是Centos7, 所以就只是介紹Centos7微信

1.2.2 解壓

unzip ngrok

1.2.3 運行

ngrok的運行十分簡單,首先將你本地的服務起起來,而後一條命令搞定, 將端口號爲8001的服務映射到公網上去。markdown

./ngrok http 8001

1.2.4 查看

打開瀏覽器,輸入控制檯裏ngrok爲你分配的二級域名,你就能夠看到你的項目在公網上運行了。由於它是免費的,因此它有2個缺點:

  1. 慢,其實慢不慢是看我的的,我我的是認爲慢。
  2. 二級域名是隨機的,因此我通常這個控制檯打開後就不會再關閉的。

上面的兩個缺點,其實都是能夠解決的,就是付費。

2. 微信接口測試

當你的項目能夠在公網上跑了,你就能夠進行接口測試了,可是在測試以前,你還須要進行下面幾步。

2.1 申請測試賬號

在你申請測試賬號以前,假如你已經有公衆號了,若是沒有,請去微信公衆平臺申請一個。

  1. 打開微信公衆平臺,登陸。
  2. 看左側側邊欄,最下面,點擊開發者工具。
  3. 進入公共平臺測試賬號。
  4. 這個時候一共顯示了三個模塊,分別是測試號信息、接口配置信息,Js接口安全域名。

下面分別介紹下這三個模塊。

2.1.1 測試號信息

這裏展現了appIdappSecret, 它是你後臺用來生成簽名所須要的。若是你要測試,須要將你以前寫的appIdappSecret改成測試賬號生成的appIdappSecret

2.1.2 接口配置信息

URL請填寫ngrok映射的地址。關於token的話,它是你在調用微信有的接口的時候須要填寫的,因爲我所調用的分享接口是用不到token的,所以我就不詳細解釋了。

值得注意的是,token是能夠任意填的,可是你要保證知足它的規則以及它與你網站設置的token保持一致。記得,當你在這裏填寫token的時候,你的項目裏已經設置好了token,不然將會提示配置失敗。

提示: 這裏的token和你以前要獲取的jsapi_ticket所須要的access_token是不同的東西。

2.1.3 Js安全接口域名

這裏填寫你所映射的ngrok的地址,有兩點須要注意,第一個就是ngrok映射的是二級域名,因此你直接填寫你的二級域名就能夠了。第二個就是必定記得不要加協議(http://), 直接輸入xxxxxxxx.ngrok.io就能夠了。

參考

微信公衆平臺
Django使用微信分享接口

相關文章
相關標籤/搜索