1. 程式人生 > >如何獲取微信公眾號使用者的個人資訊(包括OpenId)

如何獲取微信公眾號使用者的個人資訊(包括OpenId)

最近,對微信公眾號有點興趣,就自己研究了研究裡面的一些內容,發現還挺有意思的,而且通過微信公眾號可以呼叫一些比較有意思的介面,就比如百度開發服務平臺點選進入裡面的很有介面,就比較常見的翻譯,語音識別,地理位置等等,都挺好的。好了,不多說,進入正題好了。

我想,做微信公眾號開發的,對於想獲取關注了公眾號的使用者資訊,或者說是當前與後臺伺服器進行互動的當前使用者資訊,這個功能是很重要的吧。因為,通過這個,可以直接獲取到當前的使用者資訊,而不需要,每次都是進行自己輸入資訊,這個只會讓使用者感覺到很不適。。。所以,為了解決這個需求,那咱們來研究研究,如何獲取微信的個人資訊~!

(一)思路

我們來研究一下,要想獲取到個人資訊,是如何一個流程呢?

路線圖:

\

上面,畫了一個簡單的一個流程圖,我想,看著這個應該覺得不難吧。是的,確實思路很簡單,但是,,裡面的坑也不少。接下來,我對兩種情況都進行講解。

(二)情況一:通過使用者與伺服器進行訊息互動,來獲取使用者資訊

思路:針對這種情況的話,比較簡單,因為,我們在做使用者與伺服器進行訊息互動的時候,我們可以知道,使用者傳送的內容是以XML的形式進行傳送的,然後伺服器,首先接受到XML,然後再把XML轉為Map物件,再從Map物件中獲取對應的內容即可。那麼,傳送的XML的欄位是個怎麼樣呢?

欄位資訊:

ToUserName:傳送給誰的ID
FromUserName:發訊息方的ID(其實也就是使用者的OpenId)
CreateTime:訊息傳送時間,時間戳
MsgType:訊息類似,有文字,圖片,音訊,視訊,事件推送等
Content:傳送的內容

通過這個,我想大家,再結合上面給的流程圖,是不是發現了什麼呢?是的,這個OpenId,我們已經獲取了呀,那是不是可以直接獲取到使用者資訊了呢?。。。。emmmmmm,這樣說吧。差不多是可以的,那具體是怎麼做呢?緊接著往下看,仔細看我其中的註釋

步驟:

1:解析傳送過來的XML資訊格式,將其轉為Map格式

?
123456789101112131415161718192021222324/*** XML格式轉為map格式* @param request* @return*/public static Map<string string=""> xmlToMap(HttpServletRequest request){
Map<string string=""> map = new HashMap<string string="">();try {InputStream inputStream =null;inputStream = request.getInputStream();SAXReader reader = new SAXReader();Document doc = reader.read(inputStream);Element rootElement = doc.getRootElement();List<element> elements = rootElement.elements();for (Element el:elements) {map.put(el.getName() , el.getText());}inputStream.close();return map ;} catch (Exception e) {e.printStackTrace();return null ;}}</element></string></string></string>

備註:記得匯入相應的包哦。。比如dom4j還有xsreader。。

2:獲取使用者的個人資訊

?
12345678910111213141516171819202122232425262728package com.hnu.scw.utils;import com.hnu.scw.model.AccessToken;import net.sf.json.JSONObject;/*** @author scw* @create 2018-01-18 16:42* @desc 用於獲取微信使用者的資訊**/public class WeiXinUserInfoUtils {/*** 獲取微信使用者賬號的相關資訊* @param opendID  使用者的openId,這個通過當使用者進行了訊息互動的時候,才有* @return*/public static String getUserInfo(String opendID){AccessToken accessToken = WeiXinUtils.getAccessToken();//獲取access_tokenString token = accessToken.getToken();String url = GET_USERINFO_URL.replace("ACCESS_TOKEN" , token);url = url.replace("OPENID" ,opendID);JSONObject jsonObject = WeiXinUtils.doGetStr(url);

相關推薦

如何獲取公眾使用者的個人資訊包括OpenId

最近,對微信公眾號有點興趣,就自己研究了研究裡面的一些內容,發現還挺有意思的,而且通過微信公眾號可以呼叫一些比較有意思的介面,就比如百度開發服務平臺點選進入裡面的很有介面,就比較常見的翻譯,語音識別,地理位置等等,都挺好的。好了,不多說,進入正題好了。我想,做微信公眾號開發的

公眾支付開發全過程java版

sdk 命令 所有 data 權限 {} servle res ast 文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關註我的微信公眾號:好好學java,獲取優質學習資源。 一、微信官方文檔微信支付開發流程(公眾號支付) 首先我們到微信支付的官方文檔的開發步驟部分查

django搭建公眾後臺——自動回覆7.20

其實大部分還是依賴開發包,然後這個流程一直沒怎麼搞清楚所以略坑。 接入驗證的時候用的GET方法帶引數,接收引數然後驗證並返回echostr。 使用者向伺服器傳送訊息時,如果是明文傳送就直接request.body獲取xml包然後處理就好了,和GET的無關,如

公眾開發——網頁授權 頁面分享 、獲取使用者基本資訊

第一步:要用到的介面文件如下 第二步:使用網頁服務,公眾號需要如下配置 1.設定 授權回撥頁面域名 2.設定 JS介面安全域名設定(點選公眾號左邊選單 公眾號設定 進入設定頁面 點選 功能設定) 上程式碼 BLL呼叫程式先貼

公眾java開發沉澱獲取使用者資訊

​ 關注公眾號後,公眾號可獲得關注者的OpenID(加密後的微訊號,每個使用者對每個公眾號的OpenID是唯一的。對於不同公眾號,同一使用者的openid不同)。公眾號可通過OpenID獲取使用者基本資訊,包括暱稱、頭像、性別、所在城市、語言和關注時間。 ​

官方獲取公眾名片:http://open.weixin.qq.com/qr/code/?username=haihongruanjian

user blank username alt 公眾號 獲取 微信公眾號 技術分享 不知道 從微信官方獲取微信公眾號名片:http://open.weixin.qq.com/qr/code/?username=haihongruanjian 個人的號,不知道怎麽獲取。

獲取公眾已關註用戶基本

clas weixin app 獲得 cti spa tput close var 當用戶關註某一個公眾號時,被關註的公眾號就可以獲得用戶在此公眾號下的OpenID。通過用戶的OpenID,可以獲取一些基本的信息,如頭像、昵稱、性別、地區等 1、獲取access_toke

asp獲取公眾用戶的頭像和名及openid源碼

pri img openid 錯誤代碼 param eva 請求 session net asp獲取微信公眾號用戶的頭像和微信名及openid源碼,asp寫的,可以獲取用戶的頭像和微信名,性別及openid等 <script language="jscript" ru

獲取公眾access_token源碼asp寫的源碼

access 源碼 輸出 bsp info nbsp token 調用 cal <%Call Wx.C_A("wx_token")‘調用函數,如果當前的token有效則不動,否則重新獲取並寫入緩存 Wx.Echo "Token:"&Application("w

thinkphp5前後端分離獲取公眾openid

大家對openid都或多或少有些瞭解,在小程式裡openid是,通過前端獲取code傳給後端,而在公眾號裡,前端沒有傳code的介面,這就導致了,code必須後端自己取出來,我讓前端迴圈訪問的的wucode的介面,如果沒有code就繼續執行微信的而連結去換取co

java 獲取公眾粉絲的openId

public static String getUserOpenId(String accessToken){ String result = null; String requestUrl

python3 scrapy爬取公眾及歷史資訊V1.0

環境: python3 scrapy 目的 寫這篇文章主要是做一下紀念,畢竟是搞了快兩天的東西了,今天加大了量,使用scrapy爬取100多個微信公眾號,然後出現IP被封的情況下,當然了,這種情況並不是沒有辦法解決,只需要在scr

關於公眾二次開發獲取二維碼

1.獲取二維碼的第一步就是先得獲取到Ticket,然後再用ticket來換取二維碼。我們先把存放二維碼資訊的資料表(rh_qrcode)放進資料庫中,然後在控制器中寫新增二維碼的方法(qcordeadd)。我們先用getCurrentMp方法獲得到微信公眾號的所有資訊,然後把

獲取公眾文章封面圖的技巧/網站

直接使用訪問:http://weixin.shareperform.com以下主要是立項和事項的過程。作為一個從Code轉為營銷策劃的營銷人,這周實力修一波操作。一、需求一個好的微信公眾號推文,一定需要一個在設計上能吸引人的圖片。花費了半小時,找了個微信公眾號文章的封面,確無

python3 scrapy爬取公眾及歷史資訊V2.0

程式碼部分,日後補充: # -*- coding: utf-8 -*- # @Time : 2018/2/25 14:24 # @Author : 蛇崽 # @Email : [email protected] # @File

簡單三步獲取公眾使用者授權

    之前做過幾次微信公眾號開發, 一直沒有記錄下開發過程, 為方便以後不用在去各種搜尋找資料, 在此記錄開發流程...     首先, 開通微信公眾號, 電梯直達(公眾號申請).  第二步, 繫結開發者許可權, 方便使用開發者工具除錯 一切準備就緒, 接下來分

公眾支付掃碼PHP

基本思路: 1、使用者掃碼進入我們的系統頁面(自己定義的一個使用者輸入金額的頁面)       通過獲取CODE然後獲取openid 2、使用者輸完金額後,點選支付按鈕,進入統一支付介面   &nbs

公眾支付開發手記node

微信支付 前言 總結一下最近業務開發中對微信公眾號支付的開發過程,微信支付的開發前提是已經具備可上線微信公眾號開發的基礎上進行的,如果你的開發階段目前停留在起步,建議參考這篇文章開始。 好了,來聊一聊微信支付。不論是今天的分享,還是網上其他的分享,開頭總是在吐槽微信的文件。我也不例外,剛開始總是覺得文件

php公眾模版訊息傳送群發

public function sendall(){ $all_openid=$this->tosendall(); foreach($all_openid as $value){ $this->set_msg($value); } } publ

小程式和公眾開發注意事項有些是從開發文件中摘抄出來的

先從簡單的說起 (會提醒你的一些注意事項) 1、微信公眾號和小程式名稱可以由中文、數字、英文。長度在3-20個字元之間,一箇中文字等於2個字元。 2、微信公眾號和小程式名稱不得與公眾平臺已有的訂閱號