delphi 企业微信消息机器人_企业微信—群聊机器人

在企业微信群聊机器人接口对接天气API使用过程中,遇到 过一个问题,就是对于嵌套json数据如何进行嵌套的|

一:"msgtype": "text",

  1. curl 'http://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=633a31f6-7f9c-4bc4-97a0-0ec1eefa5898' \

  2. -H 'Content-Type: application/json' \

  3. -d '

  4. {

  5. "msgtype": "text",

  6. "text": {

  7. "content": "hello world"

  8. }

  9. }'

  10. 这是第一种情况:

//请求天气API

      String weather = HttpRequest.sendGet("https://www.tianqiapi.com/api/", "version=v1");
      JSONObject text = new JSONObject();
      //获得天气的json格式的字符串,将字符串转json对象
      JSONObject weatherJson = JSONObject.parseObject(weather);

//将刚获得的json对象中的data键值
      JSONArray ja = weatherJson.getJSONArray("data");

//获得data数据组中第一组数据(一共有5天的天气数据,只取了第一天的数据存入weatherJson1 )
      JSONObject weatherJson1 = JSONObject.parseObject(ja.get(0).toString());
      System.out.println(weatherJson1.get("air_tips"));


      text.put("content", weatherJson.get("update_time").toString()+ "数据,东宇鸿翔气象发布:\r\n潍坊:  " + weatherJson1.get("wea")+"\r\n"+ "最高温度:" + weatherJson1.get("tem1") + "\r\n"+ "最低温度:" + weatherJson1.get("tem2") + "\r\n" + "\r\n空气指数:"+ ""+weatherJson1.get("air")+"" + "\r\n空气质量:"+""+weatherJson1.get("air_level")+"\r\n" + weatherJson1.get("air_tips"));

//定义一新jsonobject
      JSONObject msg = new JSONObject();

//定义格式
      msg.put("msgtype", "markdown");

放入json值
      msg.put("markdown", text);

对接的企业微信机器人URL
      String url = "企业微信机器人webhook地址";
      String result = InterfaceUtils.sendPost(url,msg.toJSONString(),"");
      System.out.println(result);

二、"msgtype": "news",类型

  1. {

  2. "msgtype": "news",

  3. "news": {

  4. "articles" : [

  5. {

  6. "title" : "中秋节礼品领取",

  7. "description" : "今年中秋节公司有豪礼相送",

  8. "url" : "URL",

  9. "picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"

  10. }

  11. ]

  12. }

  13. }

5622553e67a869b15a275c365e92e8e2.png

String weather = HttpRequest.sendGet("https://www.tianqiapi.com/api/", "version=v1");        
      String result;
      //将字符串转json
      JSONObject weatherJson = JSONObject.parseObject(weather);
      Object jaArticle = weatherJson.get("data");
      System.out.println(jaArticle);
      JSONArray jsonSonData = weatherJson.getJSONArray("data");
      System.out.println("L38:" + jsonSonData.get(0));
//      JSONObject weatherJson1 = JSONObject.parseObject(jsonSonData.get(0).toString());
      String data = weatherJson.get("data").toString().substring(1);
      data  = data.substring(0,data.length()-1);
      //第二部分中上面这段数据可能没用,下面对象直接赋死值,是为了测试在连接企业微信机器人json值的使用格式,请见谅。
      Article article = new Article();//定义对象
      article.setTitle("abc");//给对象赋值
      article.setDescription("abc");
      article.setUrl("https://mp.weixin.qq.com/s/Lca666663Vhib_Fbn8sXDk1qCig?company_from66=a42b8d663ced2a11e88d5b52540005f4367767865");
      article.setPicurl("http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png");
      List listArticles = new ArrayList();//定义泛型
      listArticles.add(article);//List数组赋值,可以add多个,亲测有效
      JSONObject msg = new JSONObject();//大json
      JSONObject msg1 = new JSONObject();//小json/**
       *如果将put第二个参数toString(),不能将其转为JSON字符串。
       * msg1.put("articles", listArticles.toString());toString()会在json对应位置多加一地引号,导致下面报错
       * 则
       * "article size out of limit, hint: [1566700084_6_35eebe8628c6d0b3066d76116fff3a17]"}
       */
      msg1.put("articles", listArticles);
      msg.put("msgtype", "news");//格式
      msg.put("news", msg1);
//      msg.put("news", jsArticle);
      System.out.println( "*********77:" + msg.toJSONString());
      System.out.println("*********************");
      String url = "企业微信机器人webhook地址";
      result = InterfaceUtils.sendPost(url,msg.toJSONString(),"");
      System.out.println(result);

制作不易,点个赞吧。2c41232bfc9cb65370668ae79b298104.pngf818d8053732e9cb501e2c9a91d9b39b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker卸载命令_Docker入门篇

Docker简介Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口Docker优…

属于服务器操作系统的是,属于服务器操作系统的是

属于服务器操作系统的是 内容精选换一换裸金属服务器操作系统无法正常启动,操作系统中毒,或裸金属服务器系统运行正常,但需要对系统进行优化,使其在最优状态下工作时,用户可以使用重装裸金属服务器的操作系统功能。重装…

lds天线技术流程图_音箱耳机入门,蓝牙真无线耳机中的LDS天线 「Soomal」

在2019年新一代的真无线耳机中,我们听到了比较多关于“LDS”天线的概念,它到底是什么样子的呢?我们通过漫步者TWS1和TWS5两款真无线耳机拆解,来看看真无线蓝牙耳机天线的样子。其中,TWS1不是LDS天线,而TWS5…

ubuntu修改服务器端口,服务器环境之4:ubuntu14.04安装tomcat,端口修改

一、下载tomcat二、上传服务器并解压1.创建文件夹mkdir /usr/java/tomcatcd /usr/java/tomcat2.上传rz -e弹出窗口中选择下载好的tar.gz文件,点击确认 3.解压tar -xzf apache-tomcat-8.0.36.tar.gz4.修改文件夹名(习惯,可跳过mv apache-tomcat-8.0.36 to…

hashmap为什么线程不安全_什么时候线程不安全?怎样做到线程安全?怎么扩展线程安全的类?...

本文同名博客老炮说Java:https://www.laopaojava.com/,每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料顺便再给大家推荐一套SpringCloud微服务教程,方便学习:SpringCloud微服务电商项目教程 - 老炮说Java-程序员编程资料…

光遇服务器维护都在干什么,光遇:全图毕业后该做什么?老玩家建议,这四件事不做会后悔...

原标题:光遇:全图毕业后该做什么?老玩家建议,这四件事不做会后悔光遇:全图毕业后该做什么?老玩家建议,这四件事不做会后悔前言:大家好,我是喜欢玩游戏、聊游戏的孟婆小叔…

加仓减仓口诀_做短线必备口诀

October短线口诀早上大跌可加仓,早上大涨要减仓下午大涨要减仓,下午大跌次日买上午下跌不买股,逢低加仓T0下午拉高不追涨,逢高减仓T1量价买卖口诀高位无量就拿,就算拿错也要拿高位放量趁早跑,哪怕跑错也要跑…

包无法安装_R语言基础教程——第2章:R下载安装和环境搭建

R语言安装包下载 官网下载R安装包 下载地址为:https://cran.r-project.org 进入链接,如下图所示,在页面顶部提供了三个下载链接,分别对应三种操作系统:Windows、Mac和Linux。请选择自己操作系统对应的链接。这里以Wind…

charat越界返回什么_Java基本语法方法修饰符返回类型参数列表异常列表

方法[method name]定义方法[method]是类的成员之一,(因为在java中,方法不能单独定义,它必须在类之中)。修饰符 返回类型 方法名()[throws 异常类型]{ //方法体}方法名字:只要是一个合法的名字就可以,尽可能有意义。如&…

打包指令_Linux系统常用指令总结

来源 | CSDN 博客作者 | 不撸代码闲得慌,责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)系统的运行级别0:关机1:单用户模式(可以找回丢失的密码)2:多用户状态没有网络服务3:多用户状态有网络服务4&#xff1…

cmd管道无法接收特定程序返回值_渗透不会反弹shell?来教你写一个cmd的shell

渗透不会反弹shell?来教你写一个cmd的shell包含的库:#include #include #include #include #include #pragma comment(lib, "Ws2_32.lib")#define DEFAULT_BUFLEN 1024winsock2和ws2tcpip两个库文件是用来初始化网络套接字的。windows用来初始…

有类似split的命令吗_5分钟学linux命令之split

情景介绍平时工作中,我习惯使用rz从本地上传文件到服务器,sz从服务器下载文件到本地,但对传输文件大小有限制,例如排查线上jvm的问题,需要生成了dump文件,可能有10G大,超过了限制,怎…

乐观锁的颗粒度_MySql数据库锁机制详解

概述数据库锁定机制简单的来说,就是数据库为了保证数据的一致性与完整性,而使各种共享资源在被并发访问时变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁机制,所以MySQL也不能例外。MySQL数据库根据锁锁定数据的颗粒度可…

云溪怎么导入dxf_dwg怎么转换成dxf文件?超详细图文教程分享

在CAD相关的工作中,我们经常遇到这种问题,需要把DWG格式的CAD图纸转换成DXF格式。那么,我们应该怎么做呢?接下来为你介绍这一个方法,非常方便快速哦。准备电脑风云CAD转换器具体步骤:在桌面上新建文件夹,将…

特斯拉是l3还是l2_比特斯拉还“高一级”,长安的“L3级自动驾驶”到底什么来头?...

3月5日,长安发布了旗下全新轿跑SUV——UNI-T,新车一经亮相,便凭借极具科幻的造型,以及越级的动力性能吸粉无数。而在大家意犹未尽之时,长安又在3月10日,通过UNI-T发布了“L3级自动驾驶”量产体验&#xff0…

mysql5.7.17配置_mysql-5.7.17-winx64的安装配置

第一步:下载mysql-5.7.17-winx64解压版本:http://dev.mysql.com/downloads/mysql/第二步:解压到安装目录,如:C:\myprogram\mysql-5.7.17-winx64第三步:设置环境变量操作如下:1)右键单击我的电脑…

openstack实例控制台显示响应时间过长_监控OpenStack的技巧

如果你以前曾在云平台上工作过,你一定熟悉这些系统的分布式和解耦性质。解耦的分布式系统依赖于微服务来执行特定的任务,每个微服务都会暴露自己的REST(表示状态转移)API。这些微服务通常以诸如RabbitMQ或QPID等消息中间件的形式通过轻量级消息层相互通信…

java8 创建list方式_Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!

今天来分享下在 Java 8 中创建 Stream 的 10 种方式,我就整理了 10 种,其实还有更多,仅供大家参考学习下。 1、Stream.of 可变参数 Stream<String> stream1 = Stream.of("A", "B", "C"); System.out.println("stream1:" + st…

js map满足条件跳出循环_js.es5 map循环一大坑:循环遍历竟然出现逗号!

一、mapmap大法好作为当今程序界最好用的循环方法之一map, 在我的项目里基本替代了for循环map循环常用的一些方法/********* ES6 **********///一行代码可以省略returnarray.map( item > console.log(item))>array.map( item > {return console.log(item)})//多行代码…

micropython按键控制流水灯_【micro:bit Micropython】The LED Display(1)控制像素点

使用DFrobot研发的micropython编程软件uPyCraft&#xff0c;下载固件(Firmware)和下载程序都非常方便。可以在DFrobot论坛中进行下载。uPyCraft软件运行界面官网中的micro:bit Micropython API介绍得非常详细&#xff0c;为开发人员提供了详细的文字说明和参照。micro:bit Micr…