微信公眾號開發(fā)之訂閱號如何獲取用戶信息(一)
最近在做微信的公眾號的開發(fā)。之前是在一個認(rèn)證過的微信服務(wù)號上開發(fā)一些相應(yīng)的功能。
比如說 對認(rèn)證過的微信服務(wù)好進(jìn)行 自定義菜單的開發(fā),模板消息的回復(fù)以及關(guān)鍵詞回復(fù)的功能。
但是目前新接了這樣一個需求:要為一個微信的訂閱號做一個類似于推廣的活動,這樣就需要獲取登錄這個活動的用戶的信息,從而判斷該用戶有沒有關(guān)注過改訂閱號之類的功能。這樣就需要讓該微信訂閱號獲取到該用戶的個人信息。
這個功能其實(shí)我們已經(jīng)在微信的服務(wù)號上實(shí)現(xiàn)了,這里來回顧一下具體是如何實(shí)現(xiàn)的。
我們先來看微信公眾號開發(fā)的文檔: 之微信網(wǎng)頁授權(quán)章節(jié)。
如果我們要在微信中打開一個第三方的網(wǎng)頁,公眾號可以通過微信網(wǎng)頁授權(quán)機(jī)制,來獲取用戶的基本信息,進(jìn)而實(shí)現(xiàn)業(yè)務(wù)邏輯。這是文檔中的原話。通俗的講,微信也可以認(rèn)為是一個瀏覽器,我們發(fā)給某個人一個鏈接,一點(diǎn)這個鏈接,微信會打開相關(guān)的頁面。但是如何讓微信知道是哪個用戶打開了這個頁面呢,這樣就需要獲取到一個用戶的信息,當(dāng)然及時微信獲取了用戶的信息,也不是所有的信息都能獲取到,僅僅能獲取到用戶的昵稱,所在城市,性別等信息,獲取不到微信號的,當(dāng)然是可以獲取一個,也就是微信號的一個編碼,通過來區(qū)分用戶。
我們再來看看文檔,文檔中寫到,微信公眾號請求用戶網(wǎng)頁授權(quán)之前,得先獲取網(wǎng)頁授權(quán)的接口,也就是說需要到開發(fā) - 接口權(quán)限 - 網(wǎng)頁服務(wù) - 網(wǎng)頁帳號 - 網(wǎng)頁授權(quán)獲取用戶基本信息”的配置選項(xiàng)中,修改授權(quán)回調(diào)域名。
1.需要獲取該接口權(quán)限
2.需要填寫相關(guān)域名。
然后用戶訪問的鏈接url需要按照微信給的格式進(jìn)行鏈接,也就是說你轉(zhuǎn)發(fā)給別人的鏈接或者分享的二維碼對應(yīng)的鏈接需要按照微信的格式:
#
其中是該微信公眾號的,的值為一個天轉(zhuǎn)到你的頁面的地址,這里我說的可能不是太通俗易懂,那么這里借用別人的話:
這個 就是 一個項(xiàng)目的映射地址,當(dāng)用戶點(diǎn)擊立即體驗(yàn)超鏈接的時候,會跳轉(zhuǎn)到授權(quán)登錄頁面,當(dāng)點(diǎn)擊授權(quán)登錄之后微信公眾平臺會回調(diào)這個地址,并在這個地址上追加code和參數(shù)值
code=&=1 此時我們在頁面的代碼中可以獲取到code.
那我項(xiàng)目中的一個例子來講:
我訪問的 地址:%3A%2F%2F%%%.jsp%%%%3D4&=code&=&=789#
我這里跳轉(zhuǎn)到我一個項(xiàng)目中的.jsp 頁面中了,而在 .jsp 中就可以獲得code
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String appId = request.getParameter("appId");
String code = request.getParameter("code");
System.out.println("appId:"+appId+", code:"+code);
String linkAction = request.getParameter("linkAction");
if(linkAction==null){
linkAction = "0";
}
String linkValue = request.getParameter("linkValue");
if(linkValue==null){
linkValue = "0";
}
%>
當(dāng)然獲得這個code 之后就可以獲得相應(yīng)的 從而就可以區(qū)分出用戶來了。
但是這個認(rèn)證過的服務(wù)好實(shí)現(xiàn)的辦法,訂閱號可以嗎?
我試了下,將上述的 地址中的換成是訂閱號的 ,但是結(jié)果發(fā)現(xiàn)不行,一點(diǎn)鏈接告我“ 參數(shù)錯誤或沒有權(quán)限”。
這是為什么呢,因?yàn)榘l(fā)現(xiàn)訂閱中沒有獲取到微信網(wǎng)頁授權(quán)接口的權(quán)限,即如圖:
訂閱號無法獲得該接口權(quán)限。然而后面的事情就比較尷尬了,訂閱號沒有此接口,就無法獲取到用戶的信息。但是怎么辦呢,通過各種查網(wǎng)上的信息,發(fā)現(xiàn)訂閱號是可以獲得微信的 的 ,那就是在微信開放平臺 將一個訂閱號和服務(wù)號做綁定,然后讓訂閱號借用服務(wù)號的接口 。但是這種方法還沒有驗(yàn)證。但是已經(jīng)有例子了:
在方倍工作室的網(wǎng)站上有這樣的需求
但是前提條件是先到微信開放平臺做綁定,那今天就先到這兒,寫的比較啰嗦,主要想把過程記錄下來。
聲明:本站所有文章資源內(nèi)容,如無特殊說明或標(biāo)注,均為采集網(wǎng)絡(luò)資源。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系本站刪除。