SpringBoot获取企业微信token

该博客介绍了如何在Java中通过Apache HttpClient库来获取微信企业号的access_token。首先,需要在项目中引入commons-httpclient依赖,然后设置企业id和secretID,构造HTTP GET请求并执行。成功获取到access_token后,建议将其保存在缓存中,如Redis,以避免频繁调用接口导致的限制。对于简单的测试,可以使用Hutool实现简单的缓存管理。

引入依赖:

		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.1</version>
		</dependency>

调用方法:

//注意引入包是否正确
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
 
  public static String getToken(){
        // 企业id
        String corpid = "wx15687db123";
        // 应用对应的secretID
        String corpsecret = "31ux_biu6-456fgdf45578QHE-daZT32gzoI";
        String access_token = "";
        HttpClient client = new HttpClient();
        String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret + "";
        GetMethod get = new GetMethod(url);
        try {
            int executeMethod = client.executeMethod(get);
            System.out.println(executeMethod);
            access_token = get.getResponseBodyAsString();
            System.out.println(access_token);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return access_token;
    }

当然不能频繁调用gettoken接口,否则会受到频率拦截,access_token的有效期正常情况下为7200秒(2小时),因此我们需要将token保存在缓存中,两小时之内从缓存中获取,超过两小时再重新调接口获取token,可以通过redis等缓存技术实现,如果单单只是简单测试可以引用hutool实现,见下篇Spring Boot引入hutool实现简单缓存技术_心寒丶的博客-CSDN博客

### Spring Boot 集成企业微信 API 示例 #### 使用 `qywx-spring-boot-starter` 实现登录功能 对于基于Spring Boot的企业微信应用开发,可以利用`qywx-spring-boot-starter`来简化与企业微信API的交互过程。此starter库提供了对企业微信API的支持,使得开发者能够更便捷地完成诸如用户身份验证等操作。 当涉及到具体的登录流程时,应用程序通常会引导用户跳转至由企业微信提供的OAuth2授权页面,在那里他们可以选择同意授予必要的权限给第三方应用。一旦获得许可,回调URL将会接收到一个临时code参数,该参数随后可用于换取访问令牌以及用户的详细资料信息[^1]。 ```java // 获取access_token示例代码 String corpId = "your_corp_id"; String secret = "your_secret_key"; RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); HttpEntity<String> entity = new HttpEntity<>("parameters", headers); ResponseEntity<Map> response = restTemplate.exchange( String.format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s", corpId, secret), HttpMethod.GET, entity, Map.class); Map<String, Object> responseBody = response.getBody(); if (response.getStatusCode() == HttpStatus.OK && !Objects.isNull(responseBody.get("access_token"))) { System.out.println("Access Token: " + responseBody.get("access_token")); } else { throw new RuntimeException("Failed to obtain access token"); } ``` #### 消息推送服务实现 针对消息推送的需求,同样依赖于上述提到的`qywx-spring-boot-starter`
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心寒丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值