微信公众平台开发中使用Java如何实现获取用户的信息

发布时间:2020-11-18 15:09:28

来源:亿速云

阅读:93

作者:Leah

本篇文章为大家展示了微信公众平台开发中使用Java如何实现获取用户的信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

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

在关注者与公众号产生消息交互后,公众号可获得关注者的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的事件就是用户的关注事件,同时我们也是在关注事件中给关注者被动回复图文消息(图文消息的回复实现可参照:Java微信公众平台开发(5) 文本及图文消息回复的实现 ),其实现过程:

通过关注事件获取到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);

}

}

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

上述内容就是微信公众平台开发中使用Java如何实现获取用户的信息,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

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

  1. 微信信息回复 java,微信公众平台开发中使用Java如何实现一个消息回复功能

    微信公众平台开发中使用Java如何实现一个消息回复功能 发布时间:2020-11-17 16:11:11 来源:亿速云 阅读:82 作者:Leah 本篇文章给大家分享的是有关微信公众平台开发中使用Ja ...

  2. 微信公众平台开发中提示“该公众号提供的服务出现故障”问题解决

    问题描述: 在处理室内数据推送的时候,服务器能正常接收并处理请求,,客户端也能正常接收消息 但是在每次收到消息后,微信界面会出现,"该公众号提供的服务出现故障"字样. 解决思路一: ...

  3. 微信公众平台开发中-SAE不支持XStream框架的解决方案

    问题描述 最近几天(2014年8月20日之后),突然有不少网友反应,柳峰博客中的微信公众平台开发代码在SAE上运行会报错,或者是能正常部署,但向公众号发消息没反应.以前也有一些初学者质疑过我博客中的代 ...

  4. 微信公众平台开发中重复响应问题

    问题描述: 在项目开发中 我们有些功能是需要查询远程数据库或者是获取设备端上传数据的,这时候如果远程服务器响应不及时,或者设备端响应延迟高,微信公众号就会出现该"该微信公众号出现故障&quo ...

  5. 微信公众平台--服务号/订阅号--网页授权获取用户基本信息

    参考链接:https://www.cnblogs.com/admol/articles/4286487.html 注: 1.此为网页授权获取用户基本信息,必须为服务号,订阅号是没有权限通过网页授权来获 ...

  6. java se13安装教程_在Linux发行版中安装Java 13/OpenJDK 13的方法

    本文介绍在Linux发行版Ubuntu 18.04/16.04.Debian 10/9.CentOS 7/8.Fedora 31/30/29中安装Java 13/OpenJDK 13.Java SE ...

  7. java+读取source资源_如何从JavaJAR文件中读取资源文件?

    如何从JavaJAR文件中读取资源文件? 我试图从一个单独的JAR文件中访问一个XML文件,这个JAR是作为桌面应用程序运行的.我可以获得我需要的文件的URL,但是当我将它传递给FileReader( ...

  8. 微信公众平台开发(121) 微信二维码海报

    关键字:微信公众平台 二维码 海报 作者:方倍工作室 原文: http://www.cnblogs.com/txw1958/p/weixin-poster.html 本文介绍微信公众平台下二维码海报的 ...

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

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

最新文章

  1. 区块链和智能合约的关系
  2. word设置不同页脚
  3. 操作系统性能监控-磁盘IO
  4. Coursera课程Python for everyone:chapter6
  5. 如何删除git远程分支
  6. linux下使用VS CODE + CMAKE 调试C++程序
  7. 博客暂停通知-------10.1~11.24
  8. 【必懂C++】C++可真是个“固执”的小可爱 02
  9. P4831-Scarlet loves WenHuaKe【组合数学】
  10. 【计算机心理学】先设计再实现 在实现中完善设计
  11. 【转】RAX,eax,ax,ah,al 关系
  12. select 下拉框的选中项的change事件
  13. div html 下边加横线_css怎么添加下划线?
  14. css position理解
  15. Ubuntu16.04使用时的一些问题总结
  16. Java虚拟机面试总结
  17. 极域电子书包课堂管理系统怎么控屏_极域电子教室控屏时,怎么解除?
  18. OpenDDS简单示例,轻松入门
  19. ABAQUS二次开发手册【随书代码使用说明】
  20. (二)安装SVN服务器,web管理界面

热门文章

  1. java截取字符串后几位_java截取字符串后几位字符的方法
  2. 【微淘百课】多群直播-微信群直播
  3. JavaScript数组空位的处理
  4. [渝粤教育] 南方医科大学 医学统计学 参考 资料
  5. 用户属性标签系统建设思路以及结构
  6. 头歌-信息安全-病毒分析与防御
  7. 从苏宁电器到卡巴斯基第10篇:我在苏宁电器当营业员 II
  8. 微机原理与接口技术 汇编语言程序设计DOS常用命令
  9. anaconda conda 切换为国内源 、windows 和 Linux配置方法、 添加清华源——【一文读懂】
  10. iOS并发编程指南(3)