前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java公众号开发系列(一):如何获取access_token

Java公众号开发系列(一):如何获取access_token

原创
作者头像
IT技术分享社区
修改2024-01-27 08:50:44
3411
修改2024-01-27 08:50:44
举报
文章被收录于专栏:公众号开发

今天开始给大家介绍关于Java公众号开发相关的实战教程,希望对大家学习公众号开发提供一些帮助!

1、 access_token介绍

access_token是公众号的全局唯一接口调用凭据,公众号开发调用各接口时都需使用access_token。access_token的存储至少要保留512个字符空间。有效期目前为2个小时,如果超时需要重复获取新的token,那么上次获取的access_token也会失效,其实这也是一种安全机制,只允许有一个有效的token。

2、请求说明

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

参数名称

是否必须

说明

grant_type

默认值client_credential

appid

第三方用户唯一凭证,appid

secret

第三方用户唯一凭证密钥,即appsecret

3、 响应说明

正常返回

代码语言:javascript
复制
{
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200
}

说明:expires_in返回值为7200秒,就是有效期两个小时

错误返回

代码语言:javascript
复制
{
  "errcode":40013,
  "errmsg":"invalid appid"
}

errcode如下:

返回码

说明

-1

系统繁忙,此时请开发者稍候再试

0

请求成功

40001

AppSecret错误或者AppSecret不属于这个公众号,请开发者确认AppSecret的正确性

40002

请确保grant_type字段值为client_credential

40164

调用接口的IP地址不在白名单中,请在接口IP白名单中进行设置。

89503

此IP调用需要管理员确认,请联系管理员

89501

此IP正在等待管理员确认,请联系管理员

89506

24小时内该IP被管理员拒绝调用两次,24小时内不可再使用该IP调用

89507

1小时内该IP被管理员拒绝调用一次,1小时内不可再使用该IP调用

5、开发示例

5.1 引用依赖包

首先打开公众号创建一个maven项目,创建完成后引入hutool依赖包,方面后续http请求和字符串操作。

内容如下:

代码语言:javascript
复制
<!--安装最新版本的hutool-->
<dependencies>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.8.22</version>
    </dependency>
</dependencies>

5.2 代码示例

代码语言:javascript
复制
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
 
/**
 * 小程序开发第一步获取微信Token
 */
public class Demo01_GetToken {
 
    // 建议放在配置文件里面,这里只是演示
    private static String token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}";
    private final static String appid = "你的appid";
    private final static String secret = "你的secret";
 
    public static void main(String[] args) {
        // 获取完整的tokenURL
        String url = StrUtil.format(token_url, appid, secret);
        // 获取token
        String tokenResult = HttpUtil.get(url);
        System.out.println("获取token返回结果:   " + tokenResult);
        JSONObject tokenJson = JSONUtil.parseObj(tokenResult);
        String token = tokenJson.get("access_token").();
        System.out.println("输出公众号token: " + token);
    }
 }

注意事项:需要在公众号配置公网IP白名单,否则调用会失败。

5.3 输出效果结果

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、 access_token介绍
  • 2、请求说明
  • 3、 响应说明
  • 正常返回
  • 5、开发示例
    • 5.1 引用依赖包
      • 5.2 代码示例
        • 5.3 输出效果结果
        相关产品与服务
        弹性公网 IP
        弹性公网 IP(Elastic IP,EIP)是可以独立购买和持有,且在某个地域下固定不变的公网 IP 地址,可以与 CVM、NAT 网关、弹性网卡和高可用虚拟 IP 等云资源绑定,提供访问公网和被公网访问能力;还可与云资源的生命周期解耦合,单独进行操作;同时提供多种计费模式,您可以根据业务特点灵活选择,以降低公网成本。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档