本文介紹如何獲得微信公衆平台關注使用者的基本資訊,包括昵稱、頭像、性别、國家、省份、城市、語言。
本文的方法将囊括訂閱号和服務号以及自定義菜單各種場景,無論是否有進階接口權限,都有辦法來獲得使用者基本資訊,而無需模拟登入。
在本文中,特别要注意的是有兩個不同的Access Token,他們産生的方式不一樣,一種是使用AppID和AppSecret擷取的access_token,一種是OAuth2.0授權中産生的access_token,方倍工作室分别稱為全局Access Token和授權Access Token。
一、通過全局Access Token擷取使用者基本資訊
1. 使用者關注以及回複消息的時候,均可以獲得使用者的OpenID
其中的FromUserName就是OpenID
2. 然後使用access_token接口,請求獲得全局Access Token
傳回結果:
3. 再使用全局ACCESS_TOKEN擷取OpenID的詳細資訊
傳回如下:
至此,獲得使用者的基本資訊。
這種方式最适合使用者在關注的時候,回複一條歡迎關注+使用者昵稱的資訊,如關注下面公衆賬号時的回複所示。掃描二維碼可體驗。
二、通過OAuth2.0方式彈出授權頁面獲得使用者基本資訊
1. 首先配置回調域名
2. 構造請求url如下:
頁面URL中的
将該連結回複給關注使用者,使用者點選後,彈出應用授權界面
3. 回調頁面得到連結如下,回調url中将包含參數code
4. 再使用code換取oauth2的授權access_token
url如下:
獲得授權Access Token:
5. 再使用授權Access Token擷取使用者資訊
傳回如下
擷取使用者資訊完成。
最終得到使用者資訊如下所示
這種方法适合,
1. 在朋友圈中獲得使用者的資訊.
2. 在網頁中獲得使用者資訊。
3. 在自定義菜單中獲得使用者資訊。
需要說明的是,如果在已經有OAuth2.0網頁授權權限的服務号中用這種方法,會自動轉換成方法三中的那樣,沒有“微信登入”提示框出來。
可以微信掃描下面的二維碼,然後回複“授權”體驗這樣的擷取方式。
三、通過OAuth2.0方式不彈出授權頁面獲得使用者基本資訊
1. 配置回調域名
2. 構造請求url如下:
3. 傳回回調頁面如下
這裡獲得到了code
4. 再使用code擷取OpenID
5. 然後擷取全局Access Token【以下與方法一中相同】
6. 再使用全局ACCESS_TOKEN擷取OpenID的詳細資訊
成功獲得使用者基本資訊。
這種适合已經有OAuth2.0網頁授權的服務号在網頁中使用,且不會彈出“微信登入”頁面。減少給使用者的打擾。
四、使用哪種方法最合适
供參考
1. 服務号
有進階接口權限: 消息回複中三種都可以 自定義菜單中使用方法三 (招商銀行信用卡中心使用方法三,康盛微社群使用方法二)
沒有進階接口權限: 消息回複中使用方法二 自定義菜單中使用方法二 (沒有進階權限需要借用别人的Appid和AppSecret)
2. 訂閱号
已認證有擷取使用者資訊權限 消息回複中使用方法一 自定義菜單中使用方法二 (沒有進階權限需要借用别人的Appid和AppSecret)
未認證沒有擷取使用者資訊權限 消息回複中使用方法二 自定義菜單中暫無方法 (沒有進階權限需要借用别人的Appid和AppSecret,方倍工作室使用的就是這種)
本節最新的教程說明及源代碼已在《微信公衆平台開發最佳實踐第3版》一書中釋出,歡迎購買。