微信公眾號(服務號)已經推出很久了,但是第一次接觸的人,或多或少會走一些彎路,下面是我在開發中見到的一些問題,也給自己做個備份
萬事開頭難
其實只要是針對第三方平臺的開發,第一件要做的事兒不是開干,而是先了解它。
- 官方文檔先讀一遍(了解它再征服它~) https://mp.weixin.qq.com/wiki
- 準備一個已備案的域名和一個外網服務器,家里有些寬帶有外網IP,不過80端口都被封了,但是443是可以用的~
- 微信測試號,不需要線上申請號,掃描二維碼直接登錄,頁面略丑 https://mp.weixin.qq.com/debu...
- 在線調試用具 https://mp.weixin.qq.com/debu...
- 本地開發工具(公眾號&小程序) https://mp.weixin.qq.com/debu...
一些功能點的使用場景
帶參數的二維碼
如果要對一些活動的二維碼做標記(來源、場景、關注綁定等),關注掃描該二維碼服務端會同時收到二維碼中攜帶的參數。
個性化菜單
可以根據用戶的屬性(標簽、性別、手機系統、地區、語言)顯示不同的菜單,可以和帶參數的二維碼結合使用。
客服消息
當用戶主動和公眾號有一些交互(發信息、點擊菜單、關注公眾號等)時,在48小時內,可以主動給用戶推送消息。
JS-SDK
只要是在微信里面傳播的頁面,絕對離不開微信提供的強大的SDK功能,支持:分享內容自定義、圖像能力(拍照、選圖等)、音頻能力(錄音、播放等),具體的功能自己挖掘。
遇到過的一些問題
- 測試環境:必須關注測試服務號,否則你會碰到各種異常問題不能自拔。
- 測試環境:模板數量有限制,最多10條,多了就得刪。
- 測試環境:AppID和生產環境要區分開,不要混淆(當然,這個和MySQL等配置同理)。
- 測試環境:不要使用生產環境的appID生成access_token(生產環境的token會失效,導致錯誤)
- 測試環境:只支持配置一個js安全域名(線上是3個)。
- 測試環境:授權回調頁面域名隱藏在體驗接口權限表中,仔細找。
- 接收到微信的所有請求必須正?;貜?輸出一個success或者空),否則微信會認為處理失敗,重試N次。
- access_token放到分布式cache中,不要等失效,通過定時腳本在過期前更新。
- 區分清楚ToUserName和FromUserName,to是你,from是用戶(用戶的open_id)~
- 調用js-sdk必須配置js安全域名。
- 用戶授權分兩種,隱式和顯式。隱式:只能獲取到用戶open_id,如果不關注公眾號,不能獲取用戶信息。顯式:只要用戶點擊確定,就可以獲取用戶昵稱等信息。
- 調用所有js-sdk都必須通過接口獲取簽名數據(每次調用都需要:比如動態更改了分享標題等)
- 前端頁面使用vue.js類框架時,全部通過api獲取數據,js-sdk簽名中的url需要通過$_SERVER['HTTP_REFERER']獲取,而不是$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']。
- 帶參數的二維碼分為永久和臨時兩種,永久的數量有限,臨時的數量相對較多。比如和單個用戶屬性相關的二維碼使用臨時的二維碼優先。
- 通過js-sdk上傳的素材(音頻、圖片等),微信先會給一個media_id(通常有效期為3天),當我們使用的時候通過media_id下載下來。
- 模板消息,推送次數超多,但是必須使用模板庫的一些固定格式內容,自己申請成功率極低。
- 頁面啟用https后,頁面的資源也必須使用https,當然這個不止微信里面是這樣。
不是總結的總結
工欲善其事必先利其器,無論做什么,學什么,都得先把它的文檔看一遍,工具安裝一個。直接上手整,一臉懵逼浪費時間不說,活兒能不能干好都是個問題。
大家還遇到過什么問題或者坑,歡迎留言分享~