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

本文介绍了在Delphi中如何利用企业微信的群聊机器人接口对接天气API,处理嵌套JSON数据并展示天气信息。示例代码展示了如何获取并解析JSON数据,包括提取天气、温度和空气质量等关键信息。
摘要由CSDN通过智能技术生成

在企业微信群聊机器人接口对接天气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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值