前篇廢話不少,做爲程序員仍是講具體功能實現吧。php
在「微信二次分享功能開發筆記」博客中我完整的把分享功能怎麼實現講了一遍,其實那個是我在工做中的筆記。是在工做中遇到問題後,一步一步去修復而後總結出來的,這樣的結果可能就是由於太深刻而沒法看到全局,因此致使此次照葫蘆畫瓢覺得瓜熟蒂落,結果仍是差點栽了。html
關於獲取access_token,還有jsapi_ticket各類數據以及在公衆號上的各類配置,在網上各類博客包括個人博客「微信二次分享功能開發筆記」,以及微信官方開發文檔都有詳細的說明。就不在這裏累敘,我想講的是這些步驟走完以後你仍然發現分享沒有成功須要注意的幾個點。固然這是我本身走過的坑,確定不能解決全部問題,因此,你們懂的,有其餘問題能夠在博客下方留言,我們一塊兒探討。程序員
首先,咱們看微信的配置:api
1 wx.config({ 2 debug: false, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來 3 appId: data.appId, // 必填,公衆號的惟一標識 4 timestamp: data.timestamp, // 必填,生成簽名的時間戳 5 nonceStr: data.nonceStr, // 必填,生成簽名的隨機串 6 signature: data.signature,// 必填,簽名,見附錄1 7 jsApiList: [ 8 "onMenuShareTimeline", 9 "onMenuShareAppMessage", 10 "onMenuShareQQ", 11 "onMenuShareWeibo", 12 "onMenuShareQZone", 13 "showMenuItems" 14 ] // 必填,須要使用的JS接口列表 15 })
通常appId是不會錯的,可是也有例外,好比我以前的項目,由於公司有好幾個公衆號,所以後臺作的時候根據傳過去的公衆號名字對應給出數據的,因爲以前沒有經驗,因此發了別的公衆號過去,天然拿到的是錯的。其次,常常報錯的是簽名invalid signature,緣由可就太多了。appId錯了簽名通常不可能對的(反正沒碰見過appId錯簽名對的狀況),還有可能就是咱們分享的自定義內容中的link錯了,shareConfig通常是這樣的:安全
1 { 2 title: '', // 分享標題 3 desc: '', // 分享描述 4 link: '', // 分享連接 5 imgUrl: '', // 分享小圖 6 type: '', // 分享類型,music、video或link,不填默認爲link 7 dataUrl: '', // 若是type是music或video,則要提供數據連接,默認爲空 8 success: cb, 9 cancel: cb 10 }
在這裏,這裏的link指的是你分享出去後用戶點擊進入的頁面。注意link後面的連接的主域名必定要加在 「JS接口安全域名」裏面,好比你的連接是‘http://www.xx.com/link.html’,你就要把‘www.xx.com’放到 「JS接口安全域名」裏。再次,若是你分享出去,沒有看到小圖標,先檢查一下這個配置裏面的imgUrl是不是絕對地址,若是不是,必定要換上絕對地址,必定不能寫‘//a.m.cn/img/x.png’。最後,檢查一下jsApiList,看看你要的功能有沒有在這個清單裏面。微信
以上就是我遇到的問題了,若是有其餘問題,歡迎一塊兒討論。app