Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >springboot对接企业微信机器人

springboot对接企业微信机器人

作者头像
用户9347382
发布于 2022-01-10 08:52:47
发布于 2022-01-10 08:52:47
1.6K00
代码可运行
举报
文章被收录于专栏:程序员阿杰程序员阿杰
运行总次数:0
代码可运行

ROBOTSpringBoot

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component
public class NewScheduling {
    @Autowired
    private SimpleDateFormat time;
    private static final String WXID = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=f0474735-939d-4c44-9a78-8234b7abebe6";
    private static final Logger logger = LoggerFactory.getLogger(NewScheduling.class);
    @Scheduled(fixedDelay = 60000*60*2) //每2小时执行一次
    public void scheduledTaskByFixedDelay() {
        logger.info("定时任务开始 ByFixedDelay:" + time.format(new Date()));
        newsTask();
        logger.info("定时任务结束 ByFixedDelay:" + time.format(new Date()));
    }

设置定时任务 从接口中拿到需要的数据返回实体对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
    定时拿取接口数据
     */
    private void scheduledTask() {
        try {
            String baiduUrl = "https://api.map.baidu.com/weather/v1/?district_id=360111&data_type=all&ak=QLVCURfTor6cr3IekRiK7ebaqLjnqvYN";
            StringBuffer stringBuffer = new StringBuffer();
            URL url = new URL(baiduUrl);
            URLConnection urlConnection = url.openConnection();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(),"utf-8"));
            String line = null;
            while((line = bufferedReader.readLine() )!= null){
                stringBuffer.append(line);
            }
            bufferedReader.close();
            String seccussData = stringBuffer.toString();
            String msg = map(seccussData);
            HttpClient httpclient = HttpClients.createDefault();
            HttpPost httppost = new HttpPost(WXID);
            httppost.addHeader("Content-Type", "application/json; charset=utf-8");
            JSONObject jsonObject = new JSONObject();
            JSONObject contentObject = new JSONObject();
            contentObject.put("content", msg);
            contentObject.put("mentioned_mobile_list", "@all");
            jsonObject.put("msgtype", "text");
            jsonObject.put("text", contentObject);
            StringEntity stringEntity = new StringEntity(jsonObject.toString(), "utf-8");
            httppost.setEntity(stringEntity);
            HttpResponse response = httpclient.execute(httppost);
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
                String result = EntityUtils.toString(response.getEntity(), "utf-8");
                System.out.println(result);
            }
        } catch (MalformedURLException e) {
            logger.info(e.getMessage());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public String  map (String text){
        JSONObject jsonObject = JSONObject.parseObject(text);
        JSONObject jsonObject1 = jsonObject.getJSONObject("result");
        JSONObject jsonObject2 = jsonObject1.getJSONObject("location");//地区
        JSONObject jsonObject3 = jsonObject1.getJSONObject("now");//今天天气
        JSONArray jsonArray = jsonObject1.getJSONArray("forecasts");
        JSONObject jsonObject4 = jsonArray.getJSONObject(0);//明天的天气

        Forecast forecast = new Forecast();

        forecast.setDate(jsonObject4.get("date").toString());
        forecast.setHigh(jsonObject4.get("high").toString());
        forecast.setLow(jsonObject4.get("low").toString());
        forecast.setTextday(jsonObject4.get("text_day").toString());
        forecast.setTextnight(jsonObject4.get("text_night").toString());
        forecast.setWcday(jsonObject4.get("wc_day").toString());
        forecast.setWeek(jsonObject4.get("week").toString());
        forecast.setWdday(jsonObject4.get("wd_day").toString());
        forecast.setWcnight(jsonObject4.get("wc_night").toString());
        forecast.setWdnight(jsonObject4.get("wd_night").toString());

        Weather weather = new Weather();

        weather.setCountry(jsonObject2.get("country").toString());
        weather.setProvince(jsonObject2.get("province").toString());
        weather.setCity(jsonObject2.get("city").toString());
        weather.setName(jsonObject2.get("name").toString());
        weather.setText(jsonObject3.get("text").toString());
        weather.setFeellike(jsonObject3.get("feels_like").toString());
        weather.setRh(jsonObject3.get("rh").toString());
        weather.setUptime(jsonObject3.get("uptime").toString());
        weather.setWindclass(jsonObject3.get("wind_class").toString());
        weather.setWinddir(jsonObject3.get("wind_dir").toString());
        weather.setForecasts(forecast);

        return weather.toString();
    }
}

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名,转载请标明出处 最后编辑时间为: 2021/08/06 10:29

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WebService系列之HttpClient调用WebService接口
测试工具下载soapui测试 http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl package com.extra.credit.ut
SmileNicky
2021/03/17
4.9K0
WebService系列之HttpClient调用WebService接口
和风天气API数据分析
注册和风天气获取key,请求数据时需要用到,具体可查看 官方文档 请求数据示例 3-10天天气预报 { "HeWeather6": [ { "basic": { "cid": "CN101010100", "location": "北京", "parent_city": "北京", "admin_area": "北京",
用户6808043
2022/02/25
1.3K0
org.apache.http.client.methods.HttpPost 两种消息体形式 —— UrlEncodedFormEntity 和 StringEntity
使用 UrlEncodedFormEntity 来设置 body,消息体内容类似于“KEY1=VALUE1&KEY2=VALUE2&...”这种形式,服务端接收以后也要依据这种协议形式做处理。
LeoXu
2018/08/15
3.5K0
Java调用第三方接口示范
【1】准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的restTemplate来调用,上面有调用接口的方法【分为Get和Post方式的有参和无参调用】:
Java廖志伟
2021/01/29
1.4K0
安卓第十夜 亚当的诞生
上一讲介绍了用WebView来抓取一个网页内容。这一讲我将介绍如何在安卓内部直接进行HTTP通信。 《亚当的诞生》,西斯廷礼拜堂的吊顶画,米开朗基罗之作。当时的教皇强迫沉迷于雕塑的米开朗基罗画巨幅壁画
Vamei
2018/01/18
1.2K0
安卓第十夜 亚当的诞生
java签到百度贴吧
获取百度贴吧的BDUSS 在电脑端登录百度贴吧,按F12进入开发者控制台,点击Application 找到BDUSS,记录当中的值 申请Server酱中的Key并且绑定微信 代码如下 <?xml ve
jaychou
2022/12/26
1.7K0
使用httpclient实现图灵机器人web api调用实例
本人在使用图灵机器人的过程中,发现很不错,想试了通过api请求来获取回复,这样可以做一个页面聊天还是很不错的。网上搜到的文章好多都是get接口,现在已经不能用了,也不用urlencodeer方法处理info信息了。经过尝试,终于成功,分享方法代码,供大家参考。
FunTester
2019/08/22
7120
浅谈企业微信中AccessToken管理和API操作
原始方案: V0.1 定时器(schedule) 描述:在SpringBoot项目中,使用@Scheduled注解,每一小时获取一次AccessToken。 问题:在运行一段时间后,因网络波动导致某次请求失败,程序出错,定时器没有继续执行。 影响:程序无法进行任何微信相关的API请求。 改进:V0.2 定时器+异常捕获 V0.2 定时器+异常捕获 描述:在上述版本的情况下,增加异常捕获。 问题:运行一段时间再次出现异常,程序在获取AccessToken过程中出现阻塞,后续代码均未执行,定时器也无法执行。
geekfly
2022/05/06
2.9K0
浅谈企业微信中AccessToken管理和API操作
alertover推送api的java httpclient实现实例
本人前几天发现一款很好用的推送app——alertover,但是官网api的应用示例竟然没有java应用的示例,所以自己尝试写了一个。使用httpclient请求了一下post接口,传了一下json数据,判断一下响应的状态码。现分享代码,共大家参考。
FunTester
2019/08/08
6140
HTTP 请求工具类
坐标 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.1</version> <classifier>jdk15</classifier> </dependency> 工具类 package com.baomidou.springboot.uti
高大北
2022/06/14
9720
Salesforce作为REST Service供java访问
有的时候我们需要在其他平台上获取sfdc端的数据,比如做android项目需要访问sfdc数据,那样就需要Salesforce作为Service,java端通过http获取并对数据进行相关操作。步骤如下:
故久
2019/09/29
7120
Salesforce作为REST Service供java访问
Java调用第三方接口(http总结)
如果有一些jar包找不到,(不是maven管理需要自己下载)有时候有各种问题,或者墙或者找不到之类,可以通过创建一个maven空项目,添加pom依赖,然后下载,在pom仓库里找到即可用。
全栈程序员站长
2022/08/31
3.1K0
在线请求天气API,并解析其中的json数据予以显示
请求互联网信息提供商并取得返回的数据使用到HttpURLConnection,等待数据下载成功得到的Json,把它 解析成程序可利用的数据,使用到JSONObject
爱因斯坦福
2018/09/10
6.1K0
SpringBoot集成ES
Elasticsearch JAVA操作有三种客户端: 1、TransportClient 2、JestClient 3、RestClient 还有种是2.3中有的NodeClient,在5.5.1中好像没有了。 还有种是spring-data-elasticsearch,这里先以TransportClient为例子。
AlexZhang
2021/11/26
8220
Java HttpClient两种数据传输方式
二、server端的数据接收方式,使用@RequestBody接收二进制字节流,使用@RequestParam接收参数列表
week
2018/08/24
3.5K0
【微信开发】 红包接口开发
参考网上好几个版本的答案咯~ 分装 红包工具类 : package com.tepusoft.web.weixin.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.security.KeyStore; import java.security.NoSuchAlgorithmEx
冷冷
2018/02/08
2.6K0
Java微信公众平台开发(六)--微信开发中的token获取
引用:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效!
用户2417870
2019/09/18
2.2K0
Java微信公众平台开发(六)--微信开发中的token获取
httpclient提交json参数
有一只柴犬
2024/01/25
2620
java发送微信小程序模板消息
注意在访问的时候需要将关键字替换成自己的信息,比如APPID、APPSECRET、ACCESS_TOKEN 等。
请叫我师哥
2021/12/31
2.1K0
分布式性能测试框架用例方案设想(一)
在近期工作规划中,分布式压测框架提上日程,目前「FunTester」已经具备了一些分布式压测中用到的功能。
FunTester
2021/06/23
7250
相关推荐
WebService系列之HttpClient调用WebService接口
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验