一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java微信公眾平臺開發(fā)(12) 微信用戶信息的獲取

Java微信公眾平臺開發(fā)(12) 微信用戶信息的獲取

2020-09-18 15:14dapengniao Java教程

這篇文章主要為大家詳細介紹了Java微信公眾平臺開發(fā)第十二步,微信用戶信息的獲取,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前面的文章有講到微信的一系列開發(fā)文章,包括token獲取、菜單創(chuàng)建等,在這一篇將講述在微信公眾平臺開發(fā)中如何獲取微信用戶的信息,在上一篇我們有說道微信用戶和微信公眾賬號之間的聯(lián)系可以通過Openid關聯(lián),所以在這里我們就采用openid去獲取用戶微信信息,并實現(xiàn)一個簡單場景應用:當微信新用戶關注我們的微信公眾平臺的時候我們自動回復一篇圖文消息,然后在圖文消息中標題為:【尊敬的:XXX,你好!】,而且在圖文消息中的圖片就是用戶的微信頭像,如下圖:

Java微信公眾平臺開發(fā)(12) 微信用戶信息的獲取

有關獲取微信用戶信息的文檔我們可以參照:http://mp.weixin.qq.com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html

(一)用戶微信消息的獲取實現(xiàn)

在關注者與公眾號產(chǎn)生消息交互后,公眾號可獲得關注者的OpenID(加密后的微信號,每個用戶對每個公眾號的OpenID是唯一的。對于不同公眾號,同一用戶的openid不同)。公眾號可通過本接口來根據(jù)OpenID獲取用戶基本信息,包括昵稱、頭像、性別、所在城市、語言和關注時間。

http請求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

在這里我寫了一個方法類GetUseInfo.java,在方法中我們只需要傳入openid即可返回(昵稱,圖像、性別【其他參數(shù)可自行獲取】),代碼實現(xiàn)如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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")); //定時器中獲取到的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;
 }
 
}

(二)關注回復圖文消息實現(xiàn)

在第一部分中有說道【在關注者與公眾號產(chǎn)生消息交互后,公眾號可獲得關注者的OpenID】,在我們的場景中獲取關注者openid的事件就是用戶的關注事件,同時我們也是在關注事件中給關注者被動回復圖文消息(圖文消息的回復實現(xiàn)可參照:Java微信公眾平臺開發(fā)(5) 文本及圖文消息回復的實現(xiàn) ),其實現(xiàn)過程:

通過關注事件獲取到openid,調(diào)用獲取用戶信息接口獲取關注者相關接口;
在關注事件被動回復中設置圖文消息的title以及圖片,回復給關注者;
簡單代碼實現(xiàn)如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//對圖文消息
 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)) { // 關注事件
 System.out.println("==============這是關注事件!");
 try {
  HashMap<String, String> userinfo=GetUseInfo.Openid_userinfo(openid);
  Article article=new Article();
  article.setDescription("歡迎來到崔用志的個人博客:菜鳥程序員成長之路!"); //圖文消息的描述
  article.setPicUrl(userinfo.get("headimgurl")); //圖文消息圖片地址
  article.setTitle("尊敬的:"+userinfo.get("nickname")+",你好!"); //圖文消息標題
  article.setUrl("http://www.cuiyongzhi.com"); //圖文url鏈接
  List<Article> list=new ArrayList<Article>();
  list.add(article); //這里發(fā)送的是單圖文,如果需要發(fā)送多圖文則在這里list中加入多個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);
 }
 
 }

最終我們可以來看看我們的成果,這里為了看到效果很直觀我先取消關注然后再次關注的,如下圖:

Java微信公眾平臺開發(fā)(12) 微信用戶信息的獲取

到這里通過openid過去關注者信息的實現(xiàn)就基本結束了,下一篇將講述【微信web中JSSDK的開發(fā)配置】,感謝你的翻閱,如有疑問可以留言討論!

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cuiyongzhi.com/post/56.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: jk制服蕾丝超短裙流白浆 | 四虎永久免费地址在线网站 | 四虎免费影院ww4164h | 欧美整片完整片视频在线 | 91porny丨首页 | 国内精品久久久久影院男同志 | 国产精品xxxav免费视频 | www一区二区 | 好妈妈7在线观看高清 | 5278欧美一区二区三区 | 国产欧美日韩免费一区二区 | 单亲乱l仑在线观看免费观看 | 精品手机在线1卡二卡3卡四卡 | 国产一区国产二区国产三区 | 91这里只有精品 | 毛片免费观看 | 久久精品无码一区二区日韩av | 91精品免费国产高清在线 | 精品91自产拍在线观看99re | 无限资源在线观看完整版免费下载 | 操弄哥哥的108种姿势 | 亚洲理论视频 | 日本高免费观看在线播放 | 糖心hd在线观看 | 天堂色 | 日本精品一卡二卡≡卡四卡 | 韩国女主播在线大尺无遮挡 | 四虎现在的网址入口2022 | 色综合91久久精品中文字幕 | 四虎免费在线观看视频 | 大象传媒短视频网站 | 双龙高h| 天堂俺去俺来也www久久婷婷 | 久久精品嫩草影院免费看 | 末代皇帝无删减版在线观看 | 成人精品一区久久久久 | 日韩亚洲一区中文字幕在线 | 日本护士撒尿xxxx欧美 | 国产精品最新 | 夫妻性生活一级黄色片 | 3d蒂法受辱在线播放 |