在小程序開發中基於大數據實現新聞推送的方法:
1、在公眾平台開通消息推送功能,並添加消息模板。
2、從模板庫選擇模板也可以創建一個模板,模板添加之後,模板id是接下來要用的。
3、在需要觸發消息推送的頁面添加提交表單的事件。目的是得到formID,formID是消息推送時必須的參數。
4、配置消息模板參數,並傳給後台。
5、推送消息即可。
B. 微信小程序 實現模板消息群發、發送給指定用戶
最近在做一款拼課類小程序,大概需求就是分享課程頁面給好友,好友參與達到一定數量後則拼課成功。
按理說很平常的需求,微信公眾號里邊應該很容易實現,但是想在小程序里邊實現這么個功能卻有點蛋疼了。
為什麼小程序實現起來比較費勁呢,那就要說下小程序發送模板消息的機制了,先看文檔怎麼說:
劃重點, 本人 、 交互 ,也就是說這個模板消息,必須由用戶手動來觸發,你想後台定時給用戶推個消息,洗洗睡吧你。
再來看下面:
這個重點你們自己劃吧,發模板消息必須滿足這兩種情況中的一種,支付就不說了,用戶付款後可以推送幾條消息,重點是這個 表單提交 。
意思就是我想給用戶發個模板消息,第一要搞個表單,第二要讓用戶來提交這個表單(獲取formId),而且這個模板消息還只能發給提交表單的用戶本人,你想發給別的用戶,呵呵。
好了,說多了都是氣,既然這樣設計,也是有一定道理,但是道理都是講給守規矩的人聽的,至於不守規矩的,喂!說的就是你。
通過上面的分析我們知道,想發送一個基本的模板消息需要以下步驟:
模板消息介面 POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN 有這么幾個參數 :
前面扯了一堆概念,下面我們來把這個功能具體的實現一遍吧,我這里後台用的是php laravel,原理都一樣。
我這只寫一個例子,一看就明白
有些時候用戶操作頻繁,可能會導致伺服器收到大量請求,所以可以優化下,把formId先存到一個全局變數里邊(數組),當達到一定數量後統一發給後台來保存。這塊可以靈活運用。
服務端的實現也就兩個功能, 收集 和 發送 。
假設我們現在有這么一個類FormIdCollection,可以收集(save)和獲取(get)某個openid的formId,那我們給前台暴露的api只需要簡單的調用下就可以了,至於發消息,也只需要get一個formId,即可。
下面是FormIdCollection類的一個具體實現,基於laravel(說實話,挺好用的),另外引入了一個微信開發包 overtrue/wechat (這里主要是用來發模板消息、有點大材小用了), https://www.easywechat.com/
我已經封裝了一個laravel擴展包,感興趣的朋友可以上github上看下 https://github.com/laravuel/laravel-wfc 。
至於非框架的php實現,小夥伴可以幫忙弄下。