手把手教你如何获取微信公众号用户的个人信息(包括OpenId)

    最近,对微信公众号有点兴趣,就自己研究了研究里面的一些内容,发现还挺有意思的,而且通过微信公众号可以调用一些比较有意思的接口,就比如百度开发服务平台 点击进入 里面的很有接口,就比较常见的翻译,语音识别,地理位置等等,都挺好的。好了,不多说,进入正题好了。

    我想,做微信公众号开发的,对于想获取关注了公众号的用户信息,或者说是当前与后台服务器进行交互的当前用户信息,这个功能是很重要的吧。因为,通过这个,可以直接获取到当前的用户信息,而不需要,每次都是进行自己输入信息,这个只会让用户感觉到很不适。。。所以,为了解决这个需求,那咱们来研究研究,如何获取微信的个人信息~!

大家可以关注我的微信公众号:Java菜鸟进阶之路。便于日常阅读哦!   

目录

 (一)思路

(二)情况一:通过用户与服务器进行消息交互,来获取用户信息

(三)情况二:通过点击按钮,来直接获取到用户信息

Github仓库地址:

彩蛋:


 (一)思路

我们来研究一下,要想获取到个人信息,是如何一个流程呢?

路线图:

上面,画了一个简单的一个流程图,我想,看着这个应该觉得不难吧。是的,确实思路很简单,但是,,里面的坑也不少。接下来,我对两种情况都进行讲解。

(二)情况一:通过用户与服务器进行消息交互,来获取用户信息

思路:针对这种情况的话,比较简单,因为,我们在做用户与服务器进行消息交互的时候,我们可以知道,用户发送的内容是以XML的形式进行发送的,然后服务器,首先接受到XML,然后再把XML转为Map对象,再从Map对象中获取对应的内容即可。那么,发送的XML的字段是个怎么样呢?

字段信息:

ToUserName:发送给谁的ID
FromUserName:发消息方的ID(其实也就是用户的OpenId)
CreateTime:消息发送时间,时间戳
MsgType:消息类似,有文本,图片,音频,视频,事件推送等
Content:发送的内容

通过这个,我想大家,再结合上面给的流程图,是不是发现了什么呢?是的,这个OpenId,我们已经获取了呀,那是不是可以直接获取到用户信息了呢?。。。。emmmmmm,这样说吧。差不多是可以的,那具体是怎么做呢?紧接着往下看,仔细看我其中的注释

步骤:

1:解析发送过来的XML信息格式,将其转为Map格式

/*** 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 ;}}

备注:记得导入相应的包哦。。比如dom4j还有xsreader。。

2:获取用户的个人信息

package com.hnu.scw.utils;import com.hnu.scw.model.AccessToken;
import net.sf.json.JSONObject;/*** @author scw* @create 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/58984.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于微信公众号模板消息的调整,你怎么看?

早上起来&#xff0c;有客户反馈&#xff0c;推送的消息出现了问题。 经过测试&#xff0c;确实收到的消息和以前不一样了。 这就比较奇怪了&#xff0c;最近也没有做什么调整&#xff0c;为啥忽然就出问题了呢。 先自己检测测试了一下&#xff0c;发现发送的内容中的头尾部…

免费“白嫖” GPT-4 方法 +1,飙升 GitHub 热榜第二!开发者锐评:跟“偷”有什么区别?

前不久&#xff0c;可“白嫖” GPT-4 的 Forefront Chat 吸引了众多关注&#xff0c;导致该网站一度崩溃&#xff0c;也令不少人发出疑问&#xff1a;“GPT-4 这么贵&#xff0c;为什么它能免费让我们用&#xff1f;” 关于这个问题&#xff0c;Forefront Chat 方面并未做出相…

sipiiiii: 面向小微企业和个人开发者的简单易用应用托管平台

在当前数字化时代&#xff0c;越来越多的企业和个人都需要依赖云端服务来托管他们的应用程序。然而&#xff0c;很多传统的云服务商过于复杂或昂贵&#xff0c;这让小微企业和个人开发者难以忍受。为了满足这些用户的需求&#xff0c;我们推出了 sipiiiii&#xff0c;一个简单易…

云数据库技术沙龙|多云多源下的数据复制技术解读-NineData

摘要&#xff1a;随着数据智能时代的到来&#xff0c;多云多源架构下的数据管理是企业必备的基础设施&#xff0c;我们认为数据存取、数据集成与分发、数据安全与数据质量是基础&#xff0c;也是走向多云多源架构的起点。本议题介绍云原生的多云多源数据管理NineData&#xff0…

论文阅读《Representation learning with contrastive predictive coding 》(CPC)对比预测编码

论文地址&#xff1a;Representation Learning with Contrastive Predictive Coding 目录 一、Background&#xff08;背景&#xff09; 二、Motivation and Intuitions&#xff08;动机&#xff09; 三、Constrastive Predictive Coding&#xff08;对比预测编码&#xff…

论文阅读和分析: “How Attentive are Graph Attention Networks?”

下面所有博客是个人对EEG脑电的探索&#xff0c;项目代码是早期版本不完整&#xff0c;需要完整项目代码和资料请私聊。 数据集 1、脑电项目探索和实现(EEG) (上)&#xff1a;研究数据集选取和介绍SEED 相关论文阅读分析&#xff1a; 1、EEG-SEED数据集作者的—基线论文阅读和…

论文阅读和分析:Graph Attention Networks

Graph Attention Networks 图注意力网络&#xff08;GAT&#xff09; 通过堆叠节点能够关注其邻域特征的层&#xff0c;能够&#xff08;隐式地&#xff09;为邻域中的不同节点指定不同的权重&#xff0c;而不需要任何类型的代价高昂的矩阵运算&#xff08;例如矩阵转置&…

chatgpt赋能python:Python实现屏蔽多行的方法

Python 实现屏蔽多行的方法 作为一位有10年 Python 编程经验的工程师&#xff0c;我深知在实际开发过程中&#xff0c;屏蔽多行代码常常是必须的。在此&#xff0c;我将介绍几种 Python 屏蔽多行代码的方法&#xff0c;希望对读者有所帮助。 方法一&#xff1a;使用注释 在 …

chatgpt赋能python:Python圆柱体的体积计算代码

Python圆柱体的体积计算代码 作为一名具有10年Python编程经验的工程师&#xff0c;今天我来为大家分享Python圆柱体的体积计算代码。在这篇文章中&#xff0c;我将介绍如何使用Python编写一个简单的程序来计算圆柱体的体积&#xff0c;并解释一些关于圆柱体及如何计算其体积的…

让ChatGTP来为我们写一个计算任意位数圆周率的程序

最近在学习python&#xff0c;突然想编写一个计算圆周率pi的程序&#xff0c;可是对python库不是很熟悉&#xff0c;又不会手撸pi的计算函数所以就想起了ChatGPT&#xff0c;想让他来帮帮忙&#xff0c;顺便学习学习&#xff0c;废话不多说&#xff0c;看聊效&#xff01; &am…

chatgpt赋能python:Python编程教程:如何计算小数点后1000位

Python编程教程&#xff1a;如何计算小数点后1000位 Python是一种高级编程语言&#xff0c;被广泛应用于数据科学、人工智能、Web开发等领域。今天我们来学习如何使用Python计算小数点后1000位。 为什么需要计算小数点后1000位&#xff1f; 在实际应用中&#xff0c;有时需要…

chatgpt赋能python:Python求面积计算的实现方法

Python求面积计算的实现方法 介绍 Python是一种高级编程语言&#xff0c;由于其简单易学&#xff0c;易于编写和调试&#xff0c;以及广泛的功能库&#xff0c;使其成为许多领域中的流行语言。 Python被广泛用于科学计算&#xff0c;数据分析&#xff0c;Web开发&#xff0c;…

chatgpt赋能python:Python计算圆柱体的表面积和体积

Python计算圆柱体的表面积和体积 Python是一种经典的动态编程语言&#xff0c;由于其易学易用&#xff0c;逐渐成为了众多程序员喜爱的语言之一。Python在科学计算领域也非常流行&#xff0c;因为其具有强大且易于使用的数学和统计函数库。在本文中&#xff0c;我们将介绍如何…

chatgpt赋能python:Python数学计算利器-Math库

Python数学计算利器 - Math库 Python作为一种高级编程语言&#xff0c;自然也包含了许多与数学计算相关的库。而其中最为常用的库之一便是Math库。 Math库主要用于执行基本的数学运算&#xff0c;如三角函数、指数函数、对数函数等等。使用Math库可以使Python编程更加方便和高…

chatgpt赋能python:Python计算圆柱侧面积的方法

Python计算圆柱侧面积的方法 圆柱是常见的几何体之一&#xff0c;其侧面积的计算是学习数学和物理时的重要部分。在计算侧面积时&#xff0c;Python是一种常用的编程语言之一&#xff0c;本文将向您介绍使用Python计算圆柱侧面积的方法。 圆柱侧面积的定义 圆柱侧面积是指圆…

chatgpt赋能python:Python如何计算圆的面积和体积

Python如何计算圆的面积和体积 在工程和科学领域中&#xff0c;经常需要计算圆形物体的面积和体积。Python是一种流行的编程语言&#xff0c;可以使用它来编写计算圆形物体面积和体积的程序。接下来&#xff0c;让我们深入探讨如何使用Python计算圆形物体的面积和体积。 圆形…

chatgpt赋能python:Python计算圆的面积方法

Python计算圆的面积方法 作为一门非常受欢迎的编程语言&#xff0c;Python已经被广泛应用于各个领域。在数学计算方面&#xff0c;通过Python可以快速准确地计算一系列的数学问题&#xff0c;比如计算圆的面积。本文将介绍Python计算圆面积的方法。 什么是圆的面积&#xff1…

chatgpt赋能python:Python计算圆面积方法教程

Python计算圆面积方法教程 你是否想过如何用Python计算圆面积&#xff1f;圆形是一个基本的几何形状&#xff0c;计算圆的面积是一个必要的技能。Python作为一种流行的编程语言&#xff0c;可以帮助我们更轻松地计算圆的面积。本教程将介绍如何使用Python计算圆的面积。 什么…

chatgpt赋能python:Python计算球体表面积和体积

Python计算球体表面积和体积 如果您需要计算球体的表面积和体积&#xff0c;那么Python可以成为您的助手。Python在科学计算领域中越来越受欢迎&#xff0c;因为它是一个灵活且易于使用的语言。Python拥有大量的科学计算库&#xff0c;其中一些专用于计算几何体的表面积和体积…

chatgpt赋能python:如何用Python计算球的表面积和体积

如何用Python计算球的表面积和体积 球体是数学中的常见图形&#xff0c;计算球的表面积和体积是科学研究和应用中的重要问题。Python作为一种高效、易学、广泛使用的编程语言&#xff0c;可以很方便地用于计算球的表面积和体积。 本篇文章将会介绍如何用Python计算球的表面积…