java微信开发API解析(四)-自己定义菜单以及个性化菜单实现
全局说明
* 具体说明请參考前两篇文章。
本文说明
*本文分为五部分:
* 工具类AccessTokenUtils的封装
* 自己定义菜单和个性化菜单文档的阅读解析
* 菜单JSON的分析以及构建相应bean
* 自己定义菜单的实现
* 个性化菜单的实现
* 微信自己定义菜单全部类型菜单都给出演示
* 本文结束会给出包含本文前四篇文章的全部演示源代码
工具类AccessTokenUtils的封装
- 在上文中关于AccessToken的获取和定时保存已经具体介绍过,此处直接给出处理过之后封装的AccessTokenUtils,实现原理以及文档阅读不再给出。
AccessTokenUtils.java
package com.gist.utils;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;import javax.net.ssl.HttpsURLConnection;
import com.gist.bean.Access_token;
import com.google.gson.Gson;/**
* @author 高远</n> 邮箱:wgyscsf@163.com</n> 博客 http://blog.csdn.net/wgyscsf</n>
* 编写时期 2016-4-7 下午5:44:33
*/
public class AccessTokenUtils {
private static final long MAX_TIME = 7200 * 1000;// 微信同意最长Access_token有效时间(ms)
private static final String TAG = "WeixinApiTest";// TAG
private static final String APPID = "wx889b020b3666b0b8";// APPID
private static final String SECERT = "6da7676bf394f0a9f15fbf06027856bb";// 秘钥/*
* 该方法实现获取Access_token、保存而且仅仅保存2小时Access_token。假设超过两个小时又一次获取;假设没有超过两个小时,直接获取。该方法依赖
* :public static String getAccessToken()。
*
* 思路:将获取到的Access_token和当前时间存储到file里,
* 取出时推断当前时间和存储里面的记录的时间的时间差,假设大于MAX_TIME,又一次获取,而且将获取到的存储到file替换原来的内容
* ,假设小于MAX_TIME。直接获取。*/
// 为了调用不抛异常,这里全部捕捉异常,代码有点长
public static String getSavedAccess_token() {
Gson gson = new Gson();// 第三方jar,处理json和bean的转换
String mAccess_token = null;// 须要获取的Access_token;
FileOutputStream fos = null;// 输出流
FileInputStream fis = null;// 输入流
File file = new File("temp_access_token.temp");// Access_token保存的位置
try {
// 假设文件不存在。创建
if (!file.exists()) {
file.createNewFile();
}
} catch (Exception e1) {
e1.printStackTrace();
}
// 假设文件大小等于0。说明第一次使用。存入Access_token
if (file.length() == 0) {
try {
mAccess_token = getAccessToken();// 获取AccessToken
Access_token at = new Access_token();
at.setAccess_token(mAccess_token);
at.setExpires_in(System.currentTimeMillis() + "");// 设置存入时间
String json = gson.toJson(at
java微信开发API解析(四)-自己定义菜单以及个性化菜单实现的更多相关文章
- java微信开发API解析(二)-获取消息和回复消息
java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/20 ...
- java微信开发API第一步 服务器接入
I如何接入服务器,下面就为大家进行介绍 一.说明 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34 ...
- Java微信开发_00_资源汇总贴
1.微信公众平台技术文档(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432) 2.微信企业号开发接口文档(ht ...
- java微信开发
所谓的微信开发就是在微信开发模式之下,对微信进行公众号和企业号的扩展开发. 如果要让你的微信公众号有更多的功能,比如菜单支持,自动的信息服务,查询,消息推送等,就必须开启微信的开发模式.进入微 ...
- 分享 Java微信开发SDK
分享 Java微信开发SDK •发布于 4周前 •作者 朋也 •432 次浏览 •最后一次编辑是 2周前 •来自 分享 给大家分享两个java开发微信公众号的sdk jfinal-weixin ...
- 微信开发 api 需要 https 服务器
微信开发 api 需要 https 服务器 先建一个环境,本地的 https 服务器. 以下这篇不错,很完整. https://zhuanlan.zhihu.com/p/23640321
- 个人微信开发API协议(转)
安卓微信的api,个人微信开发API协议,微信 ipad sdk,微信ipad协议,微信web版接口api,微信网页版接口,微信电脑版sdk,微信开发sdk,微信开发API,微信协议,微信接口文档sd ...
- Force.com微信开发系列(四)申请Access Token及自定义菜单之创建菜单
在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒内失效,重复获取将导致上次获取的Token失效,本文将首先介 ...
- Java微信开发_Exception_01_The type org.xmlpull.v1.XmlPullParser cannot be resolved. It is indirectly referenced from required .class files
一.源码: package com.souvc.weixin.util; import java.io.InputStream; import java.io.Writer; import java. ...
随机推荐
- LeetCode(28)Implement strStr()
题目 Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if nee ...
- 常见BUG问题汇总[待更新]
1.字符串数据库长度问题,特别是与java接口对接的过程中要注意 2.存储数据库之前所有的数据都需要在存储前进行验证
- 微信小程序 - 上传图片纯前端(多张、单张)
演示如下 可能有些命名不太规范,到时改一下即可 点击从github拉取:图片上传示例
- DEB方式在UBUNTU安装ODOO 8.0
odoo在ubuntu最简单最快速安装方式是deb方式,基本无需再去改数据库配置文件,全自动化了,odoo中文网推荐新手采用此方法 1 安装数据库:sudo apt-get install postg ...
- CHAPTER ONE LOAD-BALANCING
1.1 Synopsis In this part, we will explain how to create a load-balancer withnginxfor a lot of OpenE ...
- [1-4] 把时间当做朋友(李笑来)Chapter 4 【开拓我们的心智】 摘录
1. 获得知识的基本途径 所有的人获取知识的最为基础的手段就是“体验”. 比“体验”再高级一点的获取知识的手段,就是“试错”(Trial and Error). 在“试错”这个手段的基础上,另外一个 ...
- C#创建一个Window服务
Window服务介绍 Microsoft Windows 服务能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示 ...
- Docker的Jenkins Pipeline工作流
原文地址:http://www.youruncloud.com/blog/127.html 分享主题 一个软件产品的开发周期中,尤其是敏捷开发,持续集成和持续部署是必不可少的环节,而随着产品的丰富,模 ...
- nginx服务器的负载均衡和动静分离(未完)
安装nginx,我的博客里面有介绍源码和yum安装. 实战:使用nginx实现动静分离的负载均衡集群 实战:使用haproxy实现负载均衡集群 LB负载均衡集群分为两类:LVS(四层)和Nginx或p ...
- javascript中window与document对象、setInterval与setTimeout定时器的用法与区别
一.写在前面 本人前端菜鸟一枚,学习前端不久,学习过程中有很多概念.定义在使用时容易混淆,在此给向我一样刚踏入前端之门的童鞋们归纳一下.今天给大家分享一下js中window与document对象.se ...