小程序訂閱消息推送(含源碼)java實(shí)現(xiàn)小程序推送,springboot實(shí)現(xiàn)微信消息推送
前面寫過一篇云開發(fā)實(shí)現(xiàn)小程序訂閱消息(模板消息)推送的文章,《借助云開發(fā)實(shí)現(xiàn)小程序訂閱消息和模板消息的推送功能》是有好多同學(xué)用的是Java寫后臺(tái),所以今天就再來寫一篇Java后臺(tái)實(shí)現(xiàn)小程序訂閱消息推送的文章。
老規(guī)矩先看效果圖

至于如何創(chuàng)建模板消息,如果獲取模板id我這節(jié)就不再講解,不知道的同學(xué)可以查看我上篇文章《借助云開發(fā)實(shí)現(xiàn)小程序訂閱消息和模板消息的推送功能》里面有詳細(xì)的講解。
今天呢就來重點(diǎn)講下如何在Java后臺(tái)編寫小程序訂閱消息推送的知識(shí)。
其實(shí)我很早之前有寫過一篇Java實(shí)現(xiàn)模板消息推送的,但是小程序后面用訂閱消息替換了模板推送,所以我也會(huì)根據(jù)最新的知識(shí)點(diǎn)不定期的更新文章的。
發(fā)送訂閱消息三步走
1,拿到用戶的openid
2,獲取access_token
3,調(diào)用小程序消息推送的接口
一,獲取用戶的openid
關(guān)于用戶openid的獲取,我寫過很多篇文章了,也有錄過視頻出來的,還不知道怎么獲取的同學(xué),可以取翻看下我之前的文章,或者看下我錄制的零基礎(chǔ)入門小程序的視頻:《5小時(shí)零基礎(chǔ)入門小程序云開發(fā)》 所以這一步不是今天的重點(diǎn)。
二,獲取access_token
首先來看下access_token是什么,下圖是官方給出的

其實(shí)通俗的講,access_token就是小程序官方給我們提供的一個(gè)憑證,你要調(diào)用小程序官方的接口,就必須先拿到access_token。所以下面先講下如果獲取access_token
看下官方文檔,可以知道我們需要用到下面的幾個(gè)參數(shù)

grant_type是一個(gè)固定的值,只有appid和secret是需要我們填入的,這兩個(gè)值在我們的小程序后臺(tái)就可以拿到,我也有錄視頻教大家如何拿到,如果不知道怎么獲取的同學(xué)可以取看下我的視頻。
下面就是Java代碼的編寫了
我們這里用的是springboot,這里涉及到一個(gè)請(qǐng)求小程序官方接口,所以我們這里用了springboot自帶的RestTemplate來做網(wǎng)絡(luò)請(qǐng)求。具體代碼如下。

可以看出代碼很簡(jiǎn)單,就是用RestTemplate來實(shí)現(xiàn)一個(gè)get請(qǐng)求,這樣我們就可以輕松的獲取到了access_token。
注意點(diǎn)
關(guān)于這個(gè)access_token,是存在有效期的,來看下官方給出的提示

所以我要在獲取到access_token的時(shí)候,把a(bǔ)ccess_token存到數(shù)據(jù)庫(kù),或者存到本地緩存,并且還要記錄當(dāng)前時(shí)間,后面再用的時(shí)候先判斷這個(gè)access_token有沒有超過2個(gè)小時(shí),如果超過2個(gè)小時(shí)的話,就要重新獲取了。由于這里不是本節(jié)的重點(diǎn),我這里只給大家說下原理。
三,發(fā)送消息到小程序
我們通過上面第二步,成功的獲取到了access_token。下面就要調(diào)用小程序官方為我們提供的發(fā)送消息的接口了。先看下官方文檔。

上面的參數(shù)都是我們發(fā)送消息時(shí)需要的。這些參數(shù)的定義和設(shè)置我在前面的文章里也都講過了,不知道的同學(xué)可以去看下我前面寫的這篇文章 《借助云開發(fā)實(shí)現(xiàn)小程序訂閱消息和模板消息的推送功能》
這里需要注意的一點(diǎn)是,我們要給用戶發(fā)送消息,就必須引導(dǎo)用戶授權(quán),就是下面這個(gè)圖

因?yàn)橛脩舨稽c(diǎn)擊允許,你是沒有辦法給用戶推送消息的。每一次授權(quán)只允許發(fā)送一條消息,所以如果你想盡量多的發(fā)送消息,就得盡量多的引導(dǎo)用戶授權(quán)。
推送的Java代碼如下

可以看到,我們這里需要定義用戶的openid,模板id,跳轉(zhuǎn)路徑,模板消息內(nèi)容。。。
這些都定義好以后,我們就可以提供一個(gè)服務(wù)給到Java的其他代碼調(diào)用,或者提供一個(gè)接口供外界傳入openid,然后給對(duì)應(yīng)的用戶推送消息了。

我們?cè)跒g覽器里調(diào)用上面接口,可以看到下圖所示,這樣就代表我們消息推送成功了。

到這里我們就可以完整的實(shí)現(xiàn)Java發(fā)送小程序消息的功能了。完整代碼也已經(jīng)貼給大家了。
后面我會(huì)寫更多Java和小程序相關(guān)的文章出來,敬請(qǐng)期待