湖南玩轉微信公眾號開發
發布時間:2022-03-03 17:00 瀏覽次數:次
引言
相信大家接觸過不少微信公眾號,除了最基礎的內容推送之外,公眾號還提供了自動回復、在線客服、消息發布、移動支付等強大功能,只要略懂開發,人人都能將公眾號玩出花。
前端時間基于微信公眾號開發了云資源告警系統、口罩申領系統,也為公司其他開發項目對接微信公眾號提供了幫助,對公眾號開發小有心得,在這里就消息推送功能做示例,分享一些公眾號開發的經驗。
一、了解基礎參數
申請公眾號流程就不多贅述了,大家到官網根據申請流程一步步填寫資料,很快就可以創建一個屬于自己的公眾號。
公眾號創建成功后,我們需要了解以下開發過程中常接觸的參數:
1、開發者ID(AppID):公眾號開發識別碼,部分接口調用時使用
2、開發者密碼(AppSecret):部分接口調用時使用,通常與AppID成對出現
3、令牌(Token):用于后端驗證接收到的信息是否來自微信
4、access_token:大部分接口調用時使用,需要調用指定接口獲取該參數
5、IP白名單:只有白名單中的IP可以調用獲取access_token接口
6、服務器地址(URL):后端接口,用于接收微信公眾號主動發送過來的消息
7、用戶ID(OpenID):每個微信用戶對用該公眾號都會有一個唯一的ID
二、獲取access_token
AppID 和AppSecret可以在開發平臺直接獲得,比較關鍵的是access_token,需要調接口生成,關于access_token需要了解的有:
1、Access_token使用于調用大部分功能接口,如推文發布、主動發送消息、查詢用戶列表等;
2、Access_token需要調用指定接口獲取,且具有時效性,默認2小時,但如果在有效時間內再次調用接口獲取access_token,則前一個token會自動失效;
3、新獲取的token有5分鐘的過度保護期,在此期間內不會被覆蓋,此特性仍在迭代優化中,后續可能會有新的過度規則;
4、如公眾號對接了多個后端應用,官方建議搭建中控應用專門管理access_token。
分享我在項目中獲取access_token的代碼:
三、構建消息接收接口
如果需要主動接收微信公眾號消息,例如用戶發送消息給公眾號、用戶點擊了菜單等,就需要在應用后端構建消息接收接口。
該接口包含兩部分:
1、當接收的消息為GET請求時,通過Token驗證消息來源,校驗消息來自公眾號后,原樣返回GET請求中的echostr參數。該配置是在公眾號配置后端消息接口時,用來通過微信發送的驗證請求;
2、除了上述情況,微信發送的消息都以POST請求的形式,因此當接收消息為POST請求時,校驗消息來源后,按規定格式返回內容即可。
代碼示例:
四、實現公眾號自動回復功能
我們可以利用消息接收接口,實現用戶消息的自動回復,上述代碼中最后一個if語句是判斷用戶交互的類型為‘text’,也就是說用戶在公眾號中發送文字消息了,那么通過下面代碼,我們就能實現自動回復“已收到您的消息,感謝支持XXXX!”
五、獲取公眾號用戶信息
將原訪問地址(URL1)改寫成固定格式(URL2),用戶在微信端訪問URL2時,會先進入授權頁面,用戶同意授權后,會帶著code參數訪問URL1,后端服務器可以使用這個code向微信后端索要該訪問用戶的OpenID。
通過OpenID,可以進行接下來的操作(例如云允許客戶訪問該頁面、或記錄該用戶信息到數據庫、或拒絕該用戶訪問等)
通常會在中間件或裝飾器中進行上述操作。
代碼示例:
六、主動推送消息到用戶
有了access_token、用戶信息,主動推送及其他大部分功能接口也都可以正常調用了。
與上面的‘自動回復’相比,主動推送不需要用戶在公眾號操作,公眾號可以隨時發消息給用戶。主動推送的使用場景較多,告警信息、消費記錄、客戶回訪等業務都可以使用到主動推送。
由于主動推送可能被利用發送大量垃圾信息,因此微信對主動推送有嚴格的限制,需要使用固定模板,并且每天都有消息數量的限制。
下面以推送告警消息作為示例:
七、總結
公眾號開發對比上次寫到的微信支付對接開發可以說是相當簡單了,如果你還有前端開發經驗,甚至可以把H5應用接入公眾號,用戶從公眾號即可訪問登陸應用,使你的應用不再愁于沒有一個頂級域名,并且天然利用了微信超過9億的用戶基礎。
本文來源于網絡,若有侵權請聯系3449817223#qq.com,將在第一時間刪除。