本身要作一個微信分享,通常來講,接第三方平臺就能夠了。可是如今的需求是能夠更改在分享的時候, 須要修改分享的時候顯示的標題和圖片。這個時候就涉及到須要調微信提供的接口了。在作的過程當中,以爲這個過程比較繁瑣,所以記錄下來,供人蔘考。
在看本文以前請務必已經將微信公衆平臺中的微信網頁開發下的微信JS-SDK說明文檔
第一部分瀏覽一次。這樣,更容易明白我在說什麼。前端
本文僅針對微信網頁開發, 簡單的說明一下整個過程:算法
signature
), 並將生成簽名的其餘數據傳遞給前端,具體查看微信公衆平臺。config
接口注入權限驗證配置了,一旦成功後, 微信端會彈出: errMsg: {config is ok}
。提供一個微信分享第三方平臺, 請搜索如何接入。vim
各類後臺生成signature
的方法,微信公衆平臺已經提供了幾種語言的,若是你使用的是不一樣的語言,能夠根據提供的方法進行相應的修改。後端
提示: 報錯能夠查看微信公衆平臺上的解決方案。api
前端使用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: () => {}, }); }); }); }
當你的代碼都完成的差很少的時候,你須要開始掃描微信二維碼進行測試,你卻發現掃出來的結果是網絡錯誤或者是其餘錯誤。這是因爲你在本地起的服務,而你用的第三方的平臺生成的二維碼,你的URL固然是localhost:8000
之類的,因此你確定是掃不出來東西的。安全
所以你須要一個這樣的工具,在你起的本地服務,能夠映射到公網上去。固然,你也能夠本身搭建一個公網服務器,而後將你的項目放到服務器上,可是若是這麼作,你的測試就麻煩不少了。你每次的修改代碼都要上傳到服務器上去,固然,你也能夠直接在服務器上進行操做。說了這麼多,其實就是想推薦一個叫ngrok
的代理工具給你,十分方便。它能夠將你本地起的一個服務映射到公網上去。服務器
點擊ngrok官網, 根據你的系統下載相應的版本。因爲我是Centos7
, 所以就只是介紹Centos7
。微信
unzip ngrok
ngrok
的運行十分簡單,首先將你本地的服務起起來,而後一條命令搞定, 將端口號爲8001
的服務映射到公網上去。markdown
./ngrok http 8001
打開瀏覽器,輸入控制檯裏ngrok
爲你分配的二級域名,你就能夠看到你的項目在公網上運行了。由於它是免費的,因此它有2個缺點:
上面的兩個缺點,其實都是能夠解決的,就是付費。
當你的項目能夠在公網上跑了,你就能夠進行接口測試了,可是在測試以前,你還須要進行下面幾步。
在你申請測試賬號以前,假如你已經有公衆號了,若是沒有,請去微信公衆平臺申請一個。
下面分別介紹下這三個模塊。
這裏展現了appId
和appSecret
, 它是你後臺用來生成簽名所須要的。若是你要測試,須要將你以前寫的appId
和appSecret
改成測試賬號生成的appId
和appSecret
。
URL
請填寫ngrok
映射的地址。關於token
的話,它是你在調用微信有的接口的時候須要填寫的,因爲我所調用的分享接口是用不到token
的,所以我就不詳細解釋了。
值得注意的是,token
是能夠任意填的,可是你要保證知足它的規則以及它與你網站設置的token
保持一致。記得,當你在這裏填寫token
的時候,你的項目裏已經設置好了token
,不然將會提示配置失敗。
提示: 這裏的token
和你以前要獲取的jsapi_ticket
所須要的access_token
是不同的東西。
這裏填寫你所映射的ngrok
的地址,有兩點須要注意,第一個就是ngrok
映射的是二級域名,因此你直接填寫你的二級域名就能夠了。第二個就是必定記得不要加協議(http://
), 直接輸入xxxxxxxx.ngrok.io
就能夠了。