本篇文章為大家展示了微信公眾平臺開發(fā)中使用Java如何實(shí)現(xiàn)獲取用戶的信息,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站是一家專業(yè)提供麥蓋提企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站制作、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為麥蓋提眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
(一)用戶微信消息的獲取實(shí)現(xiàn)
在關(guān)注者與公眾號產(chǎn)生消息交互后,公眾號可獲得關(guān)注者的OpenID(加密后的微信號,每個(gè)用戶對每個(gè)公眾號的OpenID是唯一的。對于不同公眾號,同一用戶的openid不同)。公眾號可通過本接口來根據(jù)OpenID獲取用戶基本信息,包括昵稱、頭像、性別、所在城市、語言和關(guān)注時(shí)間。
http請求方式:GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
在這里我寫了一個(gè)方法類GetUseInfo.java,在方法中我們只需要傳入openid即可返回(昵稱,圖像、性別【其他參數(shù)可自行獲取】),代碼實(shí)現(xiàn)如下:
package com.cuiyongzhi.wechat.common; import java.util.HashMap; import com.cuiyongzhi.web.util.GlobalConstants; import com.cuiyongzhi.wechat.util.HttpUtils; import net.sf.json.JSONObject; /** * ClassName: GetUseInfo * @Description: 獲取微信用戶信息 * @author dapengniao * @date 2016年3月18日 下午2:00:52 */ public class GetUseInfo { /** * @Description: 通過openid獲取用戶微信信息 * @param @param openid * @param @return * @param @throws Exception * @author dapengniao * @date 2016年3月18日 下午2:01:30 */ public static HashMap<String, String> Openid_userinfo(String openid) throws Exception { HashMap<String, String> params = new HashMap<String, String>(); params.put("access_token", GlobalConstants.getInterfaceUrl("access_token")); //定時(shí)器中獲取到的token params.put("openid", openid); //需要獲取的用戶的openid params.put("lang", "zh_CN"); String subscribers = HttpUtils.sendGet( GlobalConstants.getInterfaceUrl("OpenidUserinfoUrl"), params); System.out.println(subscribers); params.clear(); //這里返回參數(shù)只取了昵稱、頭像、和性別 params.put("nickname", JSONObject.fromObject(subscribers).getString("nickname")); //昵稱 params.put("headimgurl", JSONObject.fromObject(subscribers).getString("headimgurl")); //圖像 params.put("sex", JSONObject.fromObject(subscribers).getString("sex")); //性別 return params; } }
(二)關(guān)注回復(fù)圖文消息實(shí)現(xiàn)
在第一部分中有說道【在關(guān)注者與公眾號產(chǎn)生消息交互后,公眾號可獲得關(guān)注者的OpenID】,在我們的場景中獲取關(guān)注者openid的事件就是用戶的關(guān)注事件,同時(shí)我們也是在關(guān)注事件中給關(guān)注者被動(dòng)回復(fù)圖文消息(圖文消息的回復(fù)實(shí)現(xiàn)可參照:Java微信公眾平臺開發(fā)(5) 文本及圖文消息回復(fù)的實(shí)現(xiàn) ),其實(shí)現(xiàn)過程:
通過關(guān)注事件獲取到openid,調(diào)用獲取用戶信息接口獲取關(guān)注者相關(guān)接口;
在關(guān)注事件被動(dòng)回復(fù)中設(shè)置圖文消息的title以及圖片,回復(fù)給關(guān)注者;
簡單代碼實(shí)現(xiàn)如下:
//對圖文消息 NewsMessage newmsg=new NewsMessage(); newmsg.setToUserName(openid); newmsg.setFromUserName(mpid); newmsg.setCreateTime(new Date().getTime()); newmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS); if (map.get("Event").equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) { // 關(guān)注事件 System.out.println("==============這是關(guān)注事件!"); try { HashMap<String, String> userinfo=GetUseInfo.Openid_userinfo(openid); Article article=new Article(); article.setDescription("歡迎來到崔用志的個(gè)人博客:菜鳥程序員成長之路!"); //圖文消息的描述 article.setPicUrl(userinfo.get("headimgurl")); //圖文消息圖片地址 article.setTitle("尊敬的:"+userinfo.get("nickname")+",你好!"); //圖文消息標(biāo)題 article.setUrl("http://www.cuiyongzhi.com"); //圖文url鏈接 List<Article> list=new ArrayList<Article>(); list.add(article); //這里發(fā)送的是單圖文,如果需要發(fā)送多圖文則在這里list中加入多個(gè)Article即可! newmsg.setArticleCount(list.size()); newmsg.setArticles(list); return MessageUtil.newsMessageToXml(newmsg); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("====代碼有問題額☺!"); logger.error(e,e); } }
最終我們可以來看看我們的成果,這里為了看到效果很直觀我先取消關(guān)注然后再次關(guān)注的,如下圖:
上述內(nèi)容就是微信公眾平臺開發(fā)中使用Java如何實(shí)現(xiàn)獲取用戶的信息,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享名稱:微信公眾平臺開發(fā)中使用Java如何實(shí)現(xiàn)獲取用戶的信息
文章位置:http://aaarwkj.com/article46/iihdeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站設(shè)計(jì)公司、App開發(fā)、、營銷型網(wǎng)站建設(shè)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)