微信公眾號獲取微信使用者資訊
阿新 • • 發佈:2018-11-21
注: 這裡獲取使用者資訊方式和網頁授權獲取使用者資訊方式不同。兩個access_token不同,返回的結果也不同。
我們很多場景可能需要使用者資訊
微信公眾號獲取微信使用者資訊需要的條件:
1.獲取使用者openId。可以在使用者繫結APP的時候用code換取,也可以在使用者關注公眾號的時候獲取,或者小程式授權時獲取。微信公眾號code換取openId
2.獲取該微信公眾號 access_token。方法可見微信公眾號獲取access_token。
3.通過openId和access_token請求微信伺服器獲取使用者資訊。
程式碼如下:(略去httpclientutil類,詳見微信公眾號獲取access_token)
public class WeChatUserInfoTest { public static void main(String[] args) { String accessToken = "";//測試accessToken寫死 真實環境不應該寫死 String openId = "";//測試openId寫死 真實環境不應該寫死 Map<String, String> params = new HashMap<>(); params.put("access_token", accessToken); params.put("openid", openId); params.put("lang", "zh_CN"); String url = "https://api.weixin.qq.com/cgi-bin/user/info"; String response = HttpClientUtil.doGet(url, params); JSONObject object = JSONObject.parseObject(response); /** * 移動應用、網站應用和公眾帳號關聯到同一個微信開放平臺帳號時,unionid是唯一的, * 如果需要打通移動應用、網站應用和公眾帳號或者以後要打通,很有必要儲存unionId */ String unionId = object.getString("unionid"); /** * nickName很可能是一些古怪的符號,因此實際場景需要對nickName做處理,可以使用emoji-java的工具類去處理 */ String nickName = object.getString("nickname"); String avatarUrl = object.getString("headimgurl"); } }