JAVAEE开发接入微信公众号接口初解(1)
来源:互联网 发布:源码怎么用 编辑:程序博客网 时间:2024/06/18 15:30
这篇文章是个人对微信的理解,如果有错误的地方,希望大家能够指正出来
微信开发是针对前端提供的服务,然而并不能阻止我们一个JAVA程序员对它封装的决心!!!
正文开始:
在开发前,我们要知道,微信开发可以做些什么。
微信开发:
基于微信所提供的服务,我们可以依赖于一个特殊的账号(例如公众号),
将用户发送给微信端的消息发送至我们的服务器上,进行业务逻辑判断,做出相应的回应。
还可以通过用户在微信的授权,在不泄露用户资料的情况下,访问用户所授权的资源。
依赖微信服务器提供的服务资源进行功能拓展等。
准备事项:
1.一个公众号,开发者可以申请一个测试用的测试公众号
2.微信接口调试工具
3.微信官方API文档
当我们申请下来公众号之后,进入测试公众号(以下简称公众号),这时会
拿到一个APPID和appsecret,相当于你的公众号的用户名和密码。
我们首先进行一些基本的操作
根据errcode我们参考官方文档,便可以找到错误(后面会祥细说明)
微信开发是针对前端提供的服务,然而并不能阻止我们一个JAVA程序员对它封装的决心!!!
正文开始:
在开发前,我们要知道,微信开发可以做些什么。
微信开发:
基于微信所提供的服务,我们可以依赖于一个特殊的账号(例如公众号),
将用户发送给微信端的消息发送至我们的服务器上,进行业务逻辑判断,做出相应的回应。
还可以通过用户在微信的授权,在不泄露用户资料的情况下,访问用户所授权的资源。
依赖微信服务器提供的服务资源进行功能拓展等。
准备事项:
1.一个公众号,开发者可以申请一个测试用的测试公众号
2.微信接口调试工具
3.微信官方API文档
当我们申请下来公众号之后,进入测试公众号(以下简称公众号),这时会
拿到一个APPID和appsecret,相当于你的公众号的用户名和密码。
我们首先进行一些基本的操作
通过微信接口生成access_Token(公众号临时令牌)
https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
我们把APPID和APPSECRET这两个字符串替换成我们公众号的appid和 appsecret
微信会给我们返回一个json字符串
{"access_token":"ACCESS_TOKEN","expires_in":7200}
我们只需要access_token,后面的参数指明这个口令有效时间长度为两个小时我们有了这个口令,就可以基本不用appid和APPsecret来操作微信了。
至于怎么access_token有什么用,我们下期进行详细说明。
不说了 上代码
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.nio.charset.Charset;public class TokenTest {public static void main(String[] args) throws MalformedURLException, IOException {String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=这里换成你测试用的appid&secret=这里换成你测试用的appsecret";InputStream io = new URL(url).openStream();InputStreamReader inputStreamReader = new InputStreamReader(io, Charset.forName("UTF-8"));BufferedReader br = new BufferedReader(inputStreamReader);String token = readAll(br);System.out.println(token);}public static String readAll(BufferedReader br) throws IOException{int len = 0;char[] ch = new char[1024];StringBuilder sb = new StringBuilder();while((len = br.read(ch)) != -1){sb.append(ch,0,len);}return sb.toString();}}
控制台输出
{"access_token":"5_y7aRyAn1To2hW1fvquTmLNldl3I-YqILa_kZDVJOQCGtwClB9z3UHXfmRN9NBYJMu17G9wq9pLDCQcqmbirbhL95JvHxepIbO6-3NH7RhtGerDFW5iorio4ZNTayYE4qXBAM5cybEYM8hlkqITXcAFAUFJ","expires_in":7200}
若appid和secret错误,则会报
{"errcode":40013,"errmsg":"invalid appid"}
根据errcode我们参考官方文档,便可以找到错误(后面会祥细说明)
通过这次操作,我们发现,作为开发不过是通过地址栏访问改网址,获取json数据而继续我们的逻辑操作,很像从数据库读取数据。那么我们可以将这些操作封装成工具方法
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.nio.charset.Charset;import org.json.JSONException;import org.json.JSONObject;public class UrlJsonParampublic static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { InputStream is = new URL(url).openStream(); try { BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); String jsonText = readAll(rd); System.out.println(jsonText); JSONObject json = new JSONObject(jsonText); return json; } finally { is.close(); } }private static String readAll(Reader rd) throws IOException { StringBuilder sb = new StringBuilder(); int cp; while ((cp = rd.read()) != -1) { sb.append((char) cp); } return sb.toString(); }}
我们将字符串直接转换成JSONObject对象,便可以对json进行快速读取了。
其实微信开发不过是访问网页,读取字符串,转换成我们需要的数据,进行业务逻辑拼装,
如果大家感兴趣,我会持续更新的
更新预告:对微信的信息简单封装整理。
今天先记到这里,如果对大家有帮助,希望大家可以给个鼓励,关注一下,谢谢。
阅读全文
0 0
- JAVAEE开发接入微信公众号接口初解(1)
- 1、微信公众号开发-接入
- 微信公众平台开发----接入微信接口
- 微信公众号开发之接入
- 微信公众号开发接入指南
- 微信公众号开发--接入
- 微信公众号开发第一步 - 接入
- 微信公众号开发-接入指南
- 微信开发 公众号接入服务器
- 微信公众平台接口开发-接入验证测试
- 【微信公众平台开发】接口接入,成为开发者(二)
- 【微信公众平台开发】接口接入,成为开发者(二)
- 微信开发(一)公众号接入服务器
- 微信公众号从头开发(接入与消息)
- 微信公众号开发一(接入配置)
- 微信公众平台开发(1)-接入指南
- java 微信公众号开发(一)--微信公众号接入
- ICCMO微信公众账号开发系列(1)接入微信公众账号
- video播放器
- (3)mysql index
- eclipse activiti插件安装办法
- 腾讯首席工程师:程序员成长之道
- 浅谈Java内存模型、并发、多线程
- JAVAEE开发接入微信公众号接口初解(1)
- Oracle之 11gR2 RAC 修改监听器端口号的步骤
- 最小生成树:Prim算法
- 自己用的C#基础学习笔记(二)——C#面向对象(1)
- 程序员面试失败的原因
- SVG精髓-笔记与实践
- RocketMQ原理解析-broker 4.HA & master slave
- BouncyCastle使用
- 数据结构与算法学习总结-线性表基础