開發微信公眾平台獲取用戶基本訊息

迷茫
發布: 2017-03-25 15:05:39
原創
2399 人瀏覽過

本文介紹如何獲得微信公眾平台關注用戶的基本訊息,包括暱稱、頭像、性別、國家、省份、城市、語言。
本文的方法將囊括訂閱號和服務號以及自訂選單各種場景,無論是否有高級介面權限,都有辦法來獲得用戶基本信息,而無需模擬登入。

在本文中,特別要注意的是有兩個不同的Access Token,他們產生的方式不一樣,一種是使用AppID和AppSecret取得的access_token,一種是OAuth2.0授權中產生的access_token,方倍工作室分別稱為全域Access Token授權Access Token。

一、透過全域Access Token取得使用者基本資訊

使用者追蹤、回覆訊息的時候,皆可獲得使用者的OpenID

<xml>
    <ToUserName><![CDATA[gh_b629c48b653e]]></ToUserName>
    <FromUserName><![CDATA[ollB4jv7LA3tydjviJp5V9qTU_kA]]></FromUserName>
    <CreateTime>1372307736</CreateTime>
    <MsgType><![CDATA[event]]></MsgType>
    <Event><![CDATA[subscribe]]></Event>
    <EventKey><![CDATA[]]></EventKey></xml>
登入後複製

其中的FromUserName就是OpenID

然後使用access_token接口,請求獲得全域Access Token

##返回結果:

{
    "access_token": "NU7Kr6v9L9TQaqm5NE3OTPctTZx797Wxw4Snd2WL2HHBqLCiXlDVOw2l-Se0I-WmOLLniAYLAwzhbYhXNjbLc_KAA092cxkmpj5FpuqNO0IL7bB0Exz5s5qC9Umypy-rz2y441W9qgfnmNtIZWSjSQ",
    "expires_in": 7200
}
登入後複製
登入後複製

 再使用全域ACCESS_TOKEN取得OpenID的詳細資料

傳回如下:

{
    "subscribe": 1,
    "openid": "oLVPpjqs2BhvzwPj5A-vTYAX4GLc",
    "nickname": "刺猬宝宝",
    "sex": 1,
    "language": "zh_CN",
    "city": "深圳",
    "province": "广东",
    "country": "中国",
    "headimgurl": "http://wx.qlogo.cn/mmopen/JcDicrZBlREhnNXZRudod9PmibRkIs5K2f1tUQ7lFjC63pYHaXGxNDgMzjGDEuvzYZbFOqtUXaxSdoZG6iane5ko9H30krIbzGv/0",
    "subscribe_time": 1386160805
}
登入後複製
登入後複製

至此,取得使用者的基本資料。

這種方式最適合用戶在關注的時候,回覆一則歡迎追蹤+用戶暱稱的訊息,如關注下面公眾帳號時的回覆所示。掃描二維碼可體驗。

 

 

#二、透過OAuth2.0方式彈出授權頁面取得用戶基本資訊

1. 首先配置回調網域

將該連結回覆給關注用戶,用戶點擊後,彈出應用授權介面

 回呼頁面得到連結如下,回呼url中將包含參數code

再使用code換取oauth2的授權access_token

# url如下:

獲得授權Access Token:


{
    "access_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5AI1bw2uqN--2jXoBLIM5d6L9RImvm8Vg8cBAiLpWA8Vw",
    "expires_in": 7200,
    "refresh_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5CZPAwZksiuz_6x_TfkLoXLU7kdKM2232WDXB3Msuzq1A",
    "openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc",
    "scope": "snsapi_userinfo,"
}
登入後複製

再使用授權Access Token獲取用戶資訊

返回如下

{
    "openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc",
    "nickname": "刺猬宝宝",
    "sex": 1,
    "language": "zh_CN",
    "city": "深圳",
    "province": "广东",
    "country": "中国",
    "headimgurl": "http://wx.qlogo.cn/mmopen/utpKYf69VAbCRDRlbUsPsdQN38DoibCkrU6SAMCSNx558eTaLVM8PyM6jlEGzOrH67hyZibIZPXu4BK1XNWzSXB3Cs4qpBBg18/0",
    "privilege": []
}
登入後複製

獲取用戶信息完成。

最終得到用戶資訊如下所示

此方法詳細流程可參考 

微信公眾平台開發(71) OAuth2.0網頁授權

這種方法適合,

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

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

3. 在自訂選單中取得使用者資訊。

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

可以微信掃描下面的二維碼,然後回覆「授權」體驗這樣的取得方式。

 

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

返回如下

{
    "access_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-oJ9VmO-0Z-_izfnSAX_s0aqDsYkW4s8W5dLZ4iyNj5Y6vey3dgDtFki5C8r6D0E6mSVxxtb8BjLMhb-mCyT_Yg",
    "expires_in": 7200,
    "refresh_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-oJ9VmO-0Z-_izfnSAX_s0aqDsYkW4s8W5dLZ4iyNj5YBkF0ZUH1Ew8Iqea6x_itq13sYDqP1D7ieaDy9u2AHHw",
    "openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc",
    "scope": "snsapi_base"
}
登入後複製

傳回結果:

{
    "access_token": "NU7Kr6v9L9TQaqm5NE3OTPctTZx797Wxw4Snd2WL2HHBqLCiXlDVOw2l-Se0I-WmOLLniAYLAwzhbYhXNjbLc_KAA092cxkmpj5FpuqNO0IL7bB0Exz5s5qC9Umypy-rz2y441W9qgfnmNtIZWSjSQ",
    "expires_in": 7200
}
登入後複製
登入後複製

傳回如下:

{
    "subscribe": 1,
    "openid": "oLVPpjqs2BhvzwPj5A-vTYAX4GLc",
    "nickname": "刺猬宝宝",
    "sex": 1,
    "language": "zh_CN",
    "city": "深圳",
    "province": "广东",
    "country": "中国",
    "headimgurl": "http://wx.qlogo.cn/mmopen/JcDicrZBlREhnNXZRudod9PmibRkIs5K2f1tUQ7lFjC63pYHaXGxNDgMzjGDEuvzYZbFOqtUXaxSdoZG6iane5ko9H30krIbzGv/0",
    "subscribe_time": 1386160805
}
登入後複製
登入後複製
成功取得使用者基本資訊。

這種適合已經有OAuth2.0網頁授權的服務號碼在網頁中使用,且不會彈出「微信登入」頁面。減少給用戶的打擾。

四、使用哪一種方法最適合

##

1. 服務號碼
有進階介面權限:  訊息回覆中三種都可以自訂選單中使用方法三        (招商銀行信用卡中心使用方法三,康盛微社群使用方法二)
沒有高階介面權限: 訊息回覆中使用方法二自訂選單中使用方法二        (沒有進階權限需要藉用別人的Appid和AppSecret)
2. 訂閱號碼
已認證有取得使用者資訊權限   自訂選單中使用方法二          (沒有進階權限需要藉用別人的Appid和AppSecret)
未認證沒有取得使用者資訊權限   訊息回復中使用方法二自訂選單中暫無方法 (沒有進階權限需要藉用別人的Appid和AppSecret,方倍工作室使用的就是這種

以上是開發微信公眾平台獲取用戶基本訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板