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