前面的文章有讲到微信的一系列开发文章,包括token获取、菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关联,所以在这里我们就采用openid去获取用户微信信息,并实现一个简单场景应用:当微信新用户关注我们的微信公众平台的时候我们自动回复一篇图文消息,然后在图文消息中标题为:【尊敬的:XXX,你好!】,而且在图文消息中的图片就是用户的微信头像,如下图:

(一)用户微信消息的获取实现

在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

在这里我写了一个方法类GetUseInfo.java,在方法中我们只需要传入openid即可返回(昵称,图像、性别【其他参数可自行获取】),代码实现如下: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 Openid_userinfo(String openid)

throws Exception {

HashMap params = new HashMap();

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();

//这里返回参数只取了昵称、头像、和性别

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;

}

}

(二)关注回复图文消息实现

在第一部分中有说道【在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID】,在我们的场景中获取关注者openid的事件就是用户的关注事件,同时我们也是在关注事件中给关注者被动回复图文消息(图文消息的回复实现可参照:http://www.cuiyongzhi.com/?id=43  ),其实现过程:通过关注事件获取到openid,调用获取用户信息接口获取关注者相关接口;

在关注事件被动回复中设置图文消息的title以及图片,回复给关注者;

简单代码实现如下://对图文消息

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 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 list=new ArrayList();

list.add(article);     //这里发送的是单图文,如果需要发送多图文则在这里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);

}

}

最终我们可以来看看我们的成果,这里为了看到效果很直观我先取消关注然后再次关注的,如下图:

到这里通过openid过去关注者信息的实现就基本结束了,以一篇将讲述【微信web中JSSDK的开发配置】,感谢你的翻阅,如有疑问可以留言讨论!

除非注明,否则文章均由 崔用志博客 整理发布,欢迎转载。

如果喜欢,可以点此订阅本站

获取微信用户信息java开发_Java微信公众平台开发(十二)--微信用户信息的获取相关推荐

  1. 使用O2OA二次开发搭建企业办公平台(十二)流程开发篇:报销审批流程需求和应用创建

    本博客为O2OA系列教程.O2OA使用手册,教程目录和各章节天梯将在连载完后更新. 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台 ...

  2. 使用O2OA二次开发搭建企业办公平台(十二)流程开发篇:报销审批流程需求和应用创建...

    本博客为O2OA系列教程.O2OA使用手册,教程目录和各章节天梯将在连载完后更新. 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台 ...

  3. 使用O2OA二次开发搭建企业办公平台(十五)流程开发篇:创建报销审批流程

    本博客为O2OA系列教程.O2OA使用手册,教程目录和各章节天梯将在连载完后更新. 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台 ...

  4. java获取微信用户源码_Java微信公众平台开发(十)--微信用户信息的获取

    前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...

  5. java读取微信消息_微信公众平台开发中使用Java如何实现获取用户的信息

    微信公众平台开发中使用Java如何实现获取用户的信息 发布时间:2020-11-18 15:09:28 来源:亿速云 阅读:93 作者:Leah 本篇文章为大家展示了微信公众平台开发中使用Java如何 ...

  6. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  7. 微信公众平台开发[1] —— 获取用户Openid及个人信息

    前言: 初次尝试微信公众号的开发,对于学习方法的探索都是来源于网上的博客.问答,对于参差不齐的信息,自己也是有苦说不出,抽出一点时间写点文章,既是对自己的学习总结,也希望给予同是菜鸟的学渣一点帮助 背 ...

  8. 微信公众平台开发(76) 获取用户基本信息

    本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言. 本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息 ...

  9. 微信公众平台开发之获取用户地理位置

    在进行微信运营的时候,用户地理位置是我们进行营销策划.广告活动投放.用户精准营销的重要依据,今天我们就来分析一下微信开发中如何获取获取用户地理位置. 获取用户地理位置,你需要在微信公众平台开发者中心开 ...

最新文章

  1. Maltego更新到4.2.6
  2. github入门必备概念
  3. 图片镂空算法集合[图](转)
  4. 20160626001 O2O Website
  5. 如何打开.mmap查看的问题
  6. Smart Business design time = CDS view + SADL
  7. java中存在对多个对象加锁的情况_Java对象锁和类锁全面解析(多线程synchronized关键字)...
  8. docker镜像创建与优化
  9. 大数据_Hbase-shell命令_(补充_hbase存数据只增加不删除_只会适时删除)---Hbase工作笔记0006
  10. 网站前端和后台性能优化的34条经验和方法
  11. c#过滤字符串中相同的字符串只保留一个
  12. iOS中关于文件操作
  13. DELL XPS M1530安装MAC OS X Lion 10.7.3经验分享!
  14. UVM RAL 中的显示预测 uvm_reg_predictor
  15. 微信内转发APP及h5类域名怎么做到防封防拦截,微信域名防红技术原理
  16. 团队作业第二次——需求分析
  17. 表单上下间隔怎么设置php,html中怎么设置每行文字的间隔
  18. openldap sssd服务认证登录
  19. Python---GPA(绩点)计算器
  20. bmap地图api删除路线

热门文章

  1. Unity 蓝湖 关于UI工作流优化的思考(二)
  2. 实战:windows上如何安装kubectl并连接我们的k8s集群(测试成功-博客输出)-2022.1.3
  3. 【Linux】线程互斥
  4. ajax获取涨停股票接口,80后股神研究的两个涨停买入法!(图解)
  5. 天载配资点评指数放量下跌
  6. CheckBox操作
  7. 数据湖架构开发-Hudi入门教程
  8. Python学习1--Python基础
  9. 软件开发外包的10个理由
  10. DNF【地下城】修改IP降低延迟方法防封号方法