天天看點

微信公衆平台開發(76) 擷取使用者基本資訊

本文介紹如何獲得微信公衆平台關注使用者的基本資訊,包括昵稱、頭像、性别、國家、省份、城市、語言。

本文的方法将囊括訂閱号和服務号以及自定義菜單各種場景,無論是否有進階接口權限,都有辦法來獲得使用者基本資訊,而無需模拟登入。

在本文中,特别要注意的是有兩個不同的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的詳細資訊

傳回如下:

至此,獲得使用者的基本資訊。

這種方式最适合使用者在關注的時候,回複一條歡迎關注+使用者昵稱的資訊,如關注下面公衆賬号時的回複所示。掃描二維碼可體驗。

微信公衆平台開發(76) 擷取使用者基本資訊
微信公衆平台開發(76) 擷取使用者基本資訊
微信公衆平台開發(76) 擷取使用者基本資訊

二、通過OAuth2.0方式彈出授權頁面獲得使用者基本資訊

1. 首先配置回調域名

微信公衆平台開發(76) 擷取使用者基本資訊

 2. 構造請求url如下:

頁面URL中的

将該連結回複給關注使用者,使用者點選後,彈出應用授權界面

微信公衆平台開發(76) 擷取使用者基本資訊

3. 回調頁面得到連結如下,回調url中将包含參數code

4. 再使用code換取oauth2的授權access_token

url如下:

獲得授權Access Token:

5. 再使用授權Access Token擷取使用者資訊

傳回如下

擷取使用者資訊完成。

最終得到使用者資訊如下所示

微信公衆平台開發(76) 擷取使用者基本資訊
微信公衆平台開發(76) 擷取使用者基本資訊

這種方法适合,

1. 在朋友圈中獲得使用者的資訊.

2. 在網頁中獲得使用者資訊。

3. 在自定義菜單中獲得使用者資訊。

需要說明的是,如果在已經有OAuth2.0網頁授權權限的服務号中用這種方法,會自動轉換成方法三中的那樣,沒有“微信登入”提示框出來。

可以微信掃描下面的二維碼,然後回複“授權”體驗這樣的擷取方式。

微信公衆平台開發(76) 擷取使用者基本資訊
微信公衆平台開發(76) 擷取使用者基本資訊

三、通過OAuth2.0方式不彈出授權頁面獲得使用者基本資訊

1. 配置回調域名

微信公衆平台開發(76) 擷取使用者基本資訊

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版》一書中釋出,歡迎購買。

繼續閱讀