首页 » 99链接平台 » 基于JavaEE——微信网页(二)微信开发(开发按钮公众网页获取)

基于JavaEE——微信网页(二)微信开发(开发按钮公众网页获取)

落叶飘零 2024-11-26 04:32:39 0

扫一扫用手机浏览

文章目录 [+]

微信API帮助文档

微信接口在线调试

首先申请微信开发的测试公众号,登陆后会看到微信后台管理界面,如下所示

基于JavaEE——微信网页(二)微信开发(开发按钮公众网页获取) 99链接平台
(图片来自网络侵删)

首先申请微信开发的测试公众号,登陆后会看到微信后台管理界面,如下所示

常用参数:AppID(公众号用户名ID),AppSecret(公众号密匙——相当于密码)

目的:通过appid和appsecret可以通过微信服务端获取到小纸条(临时口令token)

获取token的URL

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

可以查阅微信API左侧导航栏-->开始开发-->获取access_toke

将URL中的大写的APPID与APPSECRET替换为测试公众号参数进行访问,微信会返回Json格式的数据

若APPID与APPSECRET没有错误,将会返还

access_token ——公众号管理口令

exprires ——有效时间

若有错误,则会返还如下数据包

{\"errcode\":40013,\"errmsg\":\"invalid appid\"}

errcode

——

错误代码,可以查阅

官方API

进行错误排查

errmsg ——错误信息

作为JavaEE开发微信,我使用的是java.net.URL类

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; public class TokenTest { public static void main(String[] args) throws IOException { String getToken = \"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET\"; //替换字符串 getToken = getToken.replaceAll(\"APPID\", \"wx5470979c202cffb4\"); getToken = getToken.replaceAll(\"APPSECRET\", \"642fe995d0bcb88d52ce14f6e1d4e7a3\"); //开启URL,将数据包转换成字符串 URL url = new URL(getToken); InputStreamReader isr = new InputStreamReader(url.openStream()); BufferedReader br = new BufferedReader(isr); StringBuffer sb = new StringBuffer(); int cp = 0; while ((cp = br.read())!=-1){ sb.append((char) cp); } System.out.println(sb.toString()); } }打印结果如下{\"access_token\":\"5_ATkgQGjgtEZ7p-Zrorz9gcikrweszy2vbcxAjL6mBNH6jIeyQl4cdHKPmwMK_xKrWFSwFTaHu2T6fmQSKgiROMxtG9Tknq_1zEQ7JIlSMieIXVNNhOBpzD20rJy2xf2KaWnmTAFfPoas_xqdCXTiAFAGBX\",\"expires_in\":7200} 通过数据包的数据,可以获取到access_token。

获取到Access_Token后,接下来我们进行修改公众号按钮的操作,按钮如下所示

微信API位置:左侧导航栏-->自定义菜单-->自定义菜单创建接口

调用接口,post方式传输json http请求方式

POST(请使用https协议)

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

这里,只需要替换掉ACCESS_TOKEN,其他按钮数据使用Post方式传输即可。

按钮数据格式

{ \"button\":[ { \"type\":\"click\", \"name\":\"今日歌曲\", \"key\":\"V1001_TODAY_MUSIC\" }, { \"name\":\"菜单\", \"sub_button\":[ { \"type\":\"view\", \"name\":\"搜索\", \"url\":\"http://www.soso.com/\" }, { \"type\":\"click\", \"name\":\"赞一下我们\", \"key\":\"V1001_GOOD\" }] }] }

常用的数据类型有

utton 一级类目按钮,1~3个

ub_button 二级类目按钮,1~5个

type 按钮类型,常用类型:click(点击事件,会偷偷地发送数据给服务器)

view(连接到一个网页)

ame 按钮显示名称

url 链接的地址

以Post方式提交数据, 这里引用了

另一篇博文

,感谢原作者。

import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import com.aishang.util.HttpRequest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class WechatTest { static String access_tonken = \"\"; public static void main(String[] args) throws Exception { Scanner scan = new Scanner(System.in); int flag = 0; do{ System.out.println(\"请输入要选择的操作\"); System.out.println(\"1.获取token\"); System.out.println(\"2.添加按钮\"); int a = scan.nextInt(); switch (a) { case 1: String token = getToken(\"wx5470979c202cffb4\",\"642fe995d0bcb88d52ce14f6e1d4e7a3\"); System.out.println(\"服务器返回信息:\" + token); JSONObject parseObject = JSON.parseObject(token); access_tonken = (String)parseObject.get(\"access_token\"); System.out.println(\"access_tonken是:\" + access_tonken); break; case 2: String butURL = \"https://api.weixin.qq.com/cgi-bin/menu/create?access_token=\"+access_tonken; String sendPost = HttpRequest.sendPost(butURL,\"{\\"button\\":[{ \\"type\\":\\"click\\",\\"name\\":\\"今日歌曲\\",\\"key\\":\\"V1001_TODAY_MUSIC\\"},{\\"name\\":\\"菜单\\", \\"sub_button\\":[{\\"type\\":\\"view\\", \\"name\\":\\"搜索\\",\\"url\\":\\"http://www.soso.com/\\"},{\\"type\\":\\"click\\",\\"name\\":\\"赞一下我们\\", \\"key\\":\\"V1001_GOOD\\"}]}]}\" ); System.out.println(sendPost); break; default: break; } System.out.println(\"是否继续 -1【是】 -2【否】\"); flag = scan.nextInt(); }while(flag == 1); } }

控制台输出

请输入要选择的操作 1.获取token 2.添加按钮 1 =================================== 服务器返回信息:{\"access_token\":\"5_nJBWPP2in70xxmLkrgC-i8lzBQNFAMID9ygQAiTDnxzUp6bJLYq28iX5YLOGUAtM0L7Nxz0jNUktyRJEpt4Af3zKDIQSyDl-AeXFtXSzxhz_IGRmqhB8f6ub5_zd1S7Frm1hf9E1rd8A_nN2MXUgAHAYJG\",\"expires_in\":7200} ====================================== access_tonken是:5_nJBWPP2in70xxmLkrgC-i8lzBQNFAMID9ygQAiTDnxzUp6bJLYq28iX5YLOGUAtM0L7Nxz0jNUktyRJEpt4Af3zKDIQSyDl-AeXFtXSzxhz_IGRmqhB8f6ub5_zd1S7Frm1hf9E1rd8A_nN2MXUgAHAYJG ================================是否继续 -1【是】 -2【否】 1 请输入要选择的操作 1.获取token 2.添加按钮 2 ======================================= {\"errcode\":0,\"errmsg\":\"ok\"} 是否继续 -1【是】 -2【否】

当显示errcode=0时,意味着添加成功,进入到测试公众号后台管理界面,可以清楚的看到测试关注用的二维码

注意:每次调试后需要重新关注测试公众号,操作不要过快。

-------------------------------------------------------------------分割线------------------------------------------------------------------

持续未完,爱尚实训感谢大家的阅读,如果大家有兴趣可以查看《基于JavaEE—微信网页(一)角色的基本说明》这篇文章并欢迎转发,在此,爱尚实训表示感谢。

标签:

相关文章