网页中获取微信用户是否关注订阅号的思路
網(wǎng)頁中要獲取微信用戶是否關(guān)注訂閱號,請保證在同一個微信開放平臺帳號下有一個服務(wù)號,否則可能很難實(shí)現(xiàn)。
在平時的業(yè)務(wù)工程中我們需要了解用戶是否關(guān)注了微信公眾號才能繼續(xù)往下操作。這種操作對服務(wù)號來說是很容易的,具體可以參考微信開發(fā)文檔>微信網(wǎng)頁開發(fā)>網(wǎng)頁授權(quán)
但是訂閱號是沒有這個功能的,也就是無法通過這個機(jī)制知道微信用戶是否關(guān)注,本文就是要解決這個問題。
在微信開發(fā)文檔>用戶管理>獲取用戶基本信息(UnionID機(jī)制)>UnionID機(jī)制說明中有提到:
開發(fā)者可通過OpenID來獲取用戶基本信息。特別需要注意的是,如果開發(fā)者擁有多個移動應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號,可通過獲取用戶基本信息中的unionid來區(qū)分用戶的唯一性,因?yàn)橹灰峭粋€微信開放平臺帳號下的移動應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號,用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應(yīng)用,unionid是相同的。
首先我們要知道的是openID結(jié)合access_token是可以轉(zhuǎn)換為unionid。所以根據(jù)如上的描述,或許可以啟發(fā)我們利用同一個微信開放平臺帳號下的服務(wù)號來輔助我們完成判斷用戶是否關(guān)注訂閱號的業(yè)務(wù)邏輯。具體做法如下:
1.保證數(shù)據(jù)庫中實(shí)時保存所有訂閱號已關(guān)注用戶的unionid,要完成這一點(diǎn),你需要做到兩點(diǎn):初始化時在數(shù)據(jù)庫中插入所有已關(guān)注用戶的unionid,每當(dāng)有用戶關(guān)注的時候?qū)⑵鋟nionid插入數(shù)據(jù)庫;這兩點(diǎn)并不難做到;前一點(diǎn),關(guān)于獲取所有已關(guān)注用戶的unionid,你可以參考我的這一篇文章:批量獲取微信公眾號用戶openID及用戶信息
2.通過上面網(wǎng)頁授權(quán)中提到的code機(jī)制,我們可以利用同一個微信開放平臺帳號下的服務(wù)號去獲取當(dāng)前微信用戶的unionid,將其與數(shù)據(jù)庫中的進(jìn)行比對即可得出當(dāng)前用戶是否關(guān)注了訂閱號。
總結(jié)
以上是生活随笔為你收集整理的网页中获取微信用户是否关注订阅号的思路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在IDEA中为项目引入maven中央仓库
- 下一篇: 《Android开发艺术探索》自定义Vi