微信公眾號開發之用戶關注
前面講了基本配置,如果配置成功,那么現在就進入我們的微信公眾號開發之旅吧!
這個旅程應該從哪里開始比較好呢?想想....首先說用戶關注吧 !畢竟這是入口。
用戶關注公眾號可以通過三種方式:
1.掃公眾號的二維碼
2.搜索公眾號的名稱
3.掃帶參數的二維碼,
但是第一個用戶只能通過前面兩種方式關注。
一、掃公眾號的二維碼
用戶掃了二維碼之后,點擊關注,微信服務器會向我們的服務器發送一串數據(對象形式):
reqMap:{
FromUserName:xx,
EventKey:xx,
Event:xx,
CreateTime:xx,
Encrypt:xx,
ToUserName:xx,
MsgType:xx,
}
會有人問,這個對象在哪里獲取的?里面的數據又是什么呢?
前面一講有提到基本配置,那里填寫了一個url(controller的方法的路徑),這個路徑對應得方法就是用於接收微信服務器給我們服務器發送的數據,
微信會給我發請求通過兩種方式(get & post),get請求用於驗證url的真實性,post請求用於返回數據,
上一節的代碼已經寫得很清楚在哪里可以獲取到這個對象數據,不清楚的朋友可以去看一下。
這里解釋一下這個對象里的我知道的數據的含義:
FromUserName:掃碼的用戶的微信openId(微信對每個用戶的唯一識別碼)
ToUserName :告訴服務器來自於哪一個微信公眾號(基本不會用)
CreateTime:掃碼時間(一個時間戳Long型)
MsgType:當前操作的類型(事件、消息),事件是event,消息有很多種:text、image、video等,用戶關注是屬於event類。
這里需要用到的數據其實只有FromUserName而已,知道是哪個用戶在關注就行了,如果需要得到這個用戶的基本信息(頭像,昵稱,性別,地址等),
根據微信公眾號提供的開發文檔去獲取就好,只要能拿到用戶的微信openId,那么一切就簡單了。
二、搜索公眾號的名稱
和第一種情況是一樣的,沒什么需要說明的。
三、掃其他用戶的二維碼
這個和前面兩種的不一樣就是微信給我們提供了一個字段,用來判斷用戶再掃一個帶什么參數的二維碼,請看下面的對象:
reqMap:{
Ticket:xx
FromUserName:xx,
EventKey:xx,
Event:xx,
CreateTime:xx,
Encrypt:xx,
ToUserName:xx,
MsgType:xx,
}
你會發現和上面的對象唯一的區別即使多了一個Ticket這個字段,
這個字段和二維碼的參數是一一對應的,知道這個就可以知道這個二維碼的參數了,
一般這個可以用於用戶的海報。
至於,這個參數與Ticket之間怎樣去對應,以及如何去生成一個帶參數的二維碼,請看下一節。