精华内容
下载资源
问答
  • 企业微信机器人发送文件 php demo **介绍链接:**[企业微信机器人发送文件 php demo](https://blog.csdn.net/xjie_127/article/details/113065950)
  • 企业微信机器人

    千次阅读 2019-10-08 07:04:24
    今天升级了企业微信,发现新增了一个机器人功能,于是好奇的玩了一下。 目前发现该机器人主要用途是用来发布定时消息,或者发布监控程序报告。 代码如下: 1.控制层 package com.qt.controller; import ...

    今天升级了企业微信,发现新增了一个机器人功能,于是好奇的玩了一下。

    目前发现该机器人主要用途是用来发布定时消息,或者发布监控程序报告。

    代码如下:

    1.控制层

    package com.qt.controller;
    
    import com.qt.service.RobotService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    
    @RestController
    @RequestMapping("/index")
    public class RobotController {
        @Autowired
        private RobotService robotService;
        /**
         * 测试企业微信机器人
         * @return  String
         */
        @RequestMapping(value = "/testRobot", method = RequestMethod.GET)
        public String testRobot()  {
            return robotService.testRobot();
        }
    }
    View Code

    2.业务逻辑

    package com.qt.service;
    
    import com.qt.utils.InterfaceUtils;
    import org.springframework.stereotype.Service;
    import com.alibaba.fastjson.JSONObject;
    
    @Service
    public class RobotService {
    
        /**
         * 测试企业微信机器人
         * @return
         */
        public String testRobot(){
            String result;
            JSONObject text = new JSONObject();
            text.put("content", "hello world!");
            JSONObject msg = new JSONObject();
            msg.put("msgtype", "text");
            msg.put("text", text);
            String url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4e2f766b-419a-4767-ad3d-d3dae461f11a";
            result = InterfaceUtils.sendPost(url,msg.toJSONString(),"");
            return result;
        }
    
    }
    

     3.工具类

    package com.qt.utils;
    
    
    import org.apache.http.HttpHost;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.conn.params.ConnRoutePNames;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicHeader;
    import org.apache.http.protocol.HTTP;
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    public class InterfaceUtils {
    
        public static String sendPost(String url, String data,String contentType){
            String result = "";
    
            contentType = "application/json";
            try {
                org.apache.http.client.HttpClient client = new DefaultHttpClient();
    
                //设置代理
                //HttpHost proxy = new HttpHost("192.168.0.0", 8080, "http");
                //client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    
                HttpPost post = new HttpPost(url);
                post.setHeader("Content-Type", contentType);
                post.addHeader("Authorization", "Basic YWRtaW46");
    
                StringEntity s = new StringEntity(data, "utf-8");
                s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,contentType));
                post.setEntity(s);
    
                // 发送请求
                HttpResponse httpResponse = client.execute(post);
    
                // 获取响应输入流
                InputStream inStream = httpResponse.getEntity().getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, "utf-8"));
                StringBuilder strber = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null){
                    strber.append(line + "\n");
                }
                inStream.close();
    
                result = strber.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return result;
        }
    }
    View Code

     

     

    然而很不幸,才玩了没一会,管理员就把它关闭了。。。

     

    转载于:https://www.cnblogs.com/stuhjf/p/11127795.html

    展开全文
  • 在R语言下配置企业微信机器人 企业微信机器人设置 在微信机器人的官方开发文档中,配置企业机器人使用了curl工具。本文意在使用R语言,实现企业微信企业微信机器人的推送。 如果需要使用钉钉平台的机器人,可以参考...

    在R语言下配置企业微信机器人

    企业微信机器人设置
    在微信机器人的官方开发文档中,配置企业机器人使用了curl工具。本文意在使用R语言,实现企业微信机器人的推送。
    如果需要使用钉钉机器人,可以参考ding包。

    1. 安装所需要的包 httr,与htmltools并载入

    library(httr)
    library(htmltools)
    

    2. 定义webhook

    API密钥可以登陆腾讯企业后台进行查询

    webhook <- "your API here"
    

    3. 在post_body定义不同种类的消息

    1. 发送文本信息

    # 1. 发送基础文本信息
    post_body <- list('msgtype' = 'text','text' = list('content' = 'Hello world!' ))
    # 2. 发送针对某人的文本信息(替换someone到要@的人)
    post_body <- list('msgtype' = 'text',
                      'text' = list('content' = 'Hello world!',
                                    'mentioned_list' = list('someone','@all')))
    

    2. 发送markdown信息

    post_body <- list("msgtype" = "markdown",
                      "markdown" = list("content" =  
    # paste0内写要发送的markdown信息。注意使用转译符号\                  
                      paste0('实时新增用户反馈<font color=\"warning\">132</font>,请相关同事注意。
             > 类型:<font color=\"comment\">用户反馈</font>
             > 普通用户反馈:<font color=\"comment\">117</font>
             > VIP用户反馈:<font color=\"comment\">15</font>')))
    

    3. 发送图片

    在企业微信的开发文档中,我们需要先计算编码前图片的md5sum值,以及用base编码后的值。这里我们使用base64enc包,进行计算。使用时请注意替换文件路径。

    # caculate md5sum
    library(tools)
    image_md5sum <- md5sum("full path to picture")
    
    # calculate base 64
    library(base64enc)
    image_base64 <- base64encode("full path to picture")
    
    # 构建post
    post_body <- list('msgtype' = 'image',
                      'image' = list('base64' = image_base64,
                                     "md5"=  image_md5sum))
    

    4. 发送图文消息

    # 注意替换url和picurl, picurl为非必须字段
    post_body <- list("msgtype" = "news",
                      "news" = 
                        list("articles" = 
                                 list(
                                   list("title" = "中秋节礼品领取",
                           "description" = "今年中秋节公司有豪礼相送",
                           "url" = "www.qq.com"),
                           list("title" = "中秋节礼品领取",
                                "description" = "今年中秋节公司有豪礼相送",
                                "url" = "url",
                                'picurl = "web link")
                           )
                           )
    

    4. 发送信息

    message <- POST(
      url = webhook,
      httr::add_headers('Content-Type' = 'application/json'),
      encode = 'json',
      body = post_body
    )
    
    

    以上为使用R代码进行企业微信机器人的信息推送。

    展开全文
  • 主要介绍了Python开发企业微信机器人每天定时发消息实例,需要的朋友可以参考下
  • Python 企业微信机器人 发送微信消息 2021/02/20 Server酱是一个很好用的微信消息推送工具,常用于服务器异常报警、向微信发送消息。 其实企业微信本身就支持机器人,可以使用API发送文本、图片、音频、视频、文件等...

    Python 企业微信机器人 发送微信消息

    2021/02/20

    Server酱是一个很好用的微信消息推送工具,常用于服务器异常报警、向微信发送消息。

    其实企业微信本身就支持机器人,可以使用API发送文本、图片、音频、视频、文件等消息,实现在个人微信中接收消息,无需下载企业微信客户端。

    1. 注册企业微信
      企业微信目前是支持个人注册的,即使没有企业,还是可以使用。
      前往 https://work.weixin.qq.com/ 使用个人微信注册企业微信。进入管理后台,我的企业 > 企业信息,可以看到企业ID。
    2. 创建机器人
      进入管理后台,应用管理 > 自建 > 创建应用,创建一个机器人,得到AgentId和Secret。
    3. 我的企业 > 微信插件 > 邀请关注,用个人微信扫码关注,即可使用个人微信接收消息。
    4. Python代码
    import requests
    import json
    
    
    class wechatbot:
        '''
        企业微信机器人
        '''
    
        def __init__(self, corpid, agentid, secret):
            '''
            corpid: 企业ID
            agentid: 机器人的AgentId
            secret: 机器人的Secret
            '''
            self.corpid = corpid
            self.agentid = agentid
            self.secret = secret
    
        def get_access_token(self):
            get_token_api = f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={self.secret}'
            r = requests.get(get_token_api).json()
            print(r)
            if r["errcode"] == 0:
                self.access_token = r["access_token"]
    
        def upload_file(self, file_type, file_path, file_name):
            upload_api = f'https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={self.access_token}&type={file_type}'
            files = {'media': (file_name, open(file_path, "rb"), '', {})}
    
            # headers = {'Content-Type': 'multipart/form-data'}
            r = requests.post(upload_api,  files=files).json()
            print(r)
            if r["errcode"] == 0:
                return r["media_id"]
    
        def send(self, msgtype, content):
            send_message_api = f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={self.access_token}'
    
            message = {
                "agentid": self.agentid,
                "touser": "@all",
                "msgtype": msgtype,
                msgtype: content
            }
    
            headers = {'Content-Type': 'application/json'}
            r = requests.post(send_message_api, data=json.dumps(message),
                              headers=headers).json()
            print(r)
            return r["errcode"]
    
    
    if __name__ == "__main__":
        corpid = 'wxxxxxxxxxxxxxxxxx'
        agentid = 1000002
        secret = 'SCXXXXXXXXXXXXXXXXXXXXXXXXXX'
    
        bot = wechatbot(corpid, agentid, secret)
        bot.get_access_token()
        #bot.access_token = '4awAnq'
    
        text = {
            "content": 'test - send from vscode'
        }
    
        news = {
            "articles": [
                {
                    "title": "article 1",
                    "description": "description 1",
                    "url": "https://www.example.com",
                    "picurl": "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"
                },
                {
                    "title": "article 2",
                    "description": "description 2",
                    "url": "https://www.example.com",
                    "picurl": "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"
                }
            ]
        }
    
        image_id = bot.upload_file('image', './test/src/123+123.png', '123+123.png')
        # image_id = '3Ru536yMS8NKoZ5lC5QBB3GyHktVWEAy8yuEoyJhXXXX'
        image = {
            "media_id": image_id
        }
    
        voice_id = bot.upload_file('voice', './test/src/hello.amr', 'hello.amr')
        # voice_id = '3XOId6MOk_gW1X48x0L0ZXfhHclK72DzUe1ZL-R1XXXX'
        voice = {
            "media_id": voice_id
        }
    
        video_id = bot.upload_file('video', './test/src/test_video.mp4', 'video.mp4')
        # video_id = '37NqJGlKZU3vcvijSO1XoJwmJ9kfyt4Pw3hhG4w2HvbkoVMPco_38BVOg9F0LXXXX'
        video = {
            "media_id": video_id,
            "title": "Title",
            "description": "Description"
        }
    
        file_id = bot.upload_file('file', './test/test.pdf', 'test.pdf')
        # file_id = '3MAsA-EWw0g1iAhlWghUzbHOUp_n_nS1iLYS1uEzXXXX'
        f = {
            "media_id": file_id
        }
    
        textcard = {
            "title": "通知",
            "description": '''
                <div class=\"gray\">gray</div>
                <div class=\"normal\">normal</div>
                <div class=\"highlight\">highlight</div>''',
            "url": "https://www.example.com",
            "btntxt": "More"
        }
    
        markdown = {
            "content": """# Title
                `code`
                **bold**
                > <font color=\"info\">info</font>
                <font color=\"warning\">warning</font>
                <font color=\"comment\">comment</font>
                [link](https://www.example.com)
                """
        }
    
        taskcard = {
            "title": "Title",
            "description": "Description<br>description",
            "url": "https://www.example.com",
            "task_id": "taskid002",
            "btn": [
                {
                    "key": "key1",
                    "name": "name1",
                    "replace_name": "replace_name1",
                    "color": "red",
                    "is_bold": True
                },
                {
                    "key": "key2",
                    "name": "name2",
                    "replace_name": "replace_name2"
                }
            ]
        }
    
        bot.send("text", text)
        bot.send("news", news)
        bot.send("image", image)
        bot.send("voice", voice)
        bot.send("video", video)
        bot.send("file", f)
        bot.send("textcard", textcard)
        # bot.send("markdown", markdown) # 个人微信不支持
        # bot.send("taskcard", taskcard) # 个人微信不支持
        
    
    1. 根据企业ID、机器人的AgentId和Secret获取access_token
    2. 调用发送消息API发送指定格式的数据
    3. 文本型消息可以直接发送,各种文件需要先上传获取media_id
    4. access_token的有效期一般为2小时,media_id的有效期是3天
    

    参考

    1. 企业微信开发文档

    ----------------8<----------------[ end ]----------------8<----------------

    展开全文
  • 企业微信机器人发送消息

    万次阅读 2019-07-04 17:21:57
    背景:之前用钉钉机器人可以发送消息,可以将线上的告警通知发送到消息群中,后来企业微信也支持在群组中增加机器人了,钉钉和企业微信机器人的使用很相似,都是使用webhook的方式来进行实现的,话不多说,咱们先配置...

    背景:之前用钉钉机器人可以发送消息,可以将线上的告警通知发送到消息群中,后来企业微信也支持在群组中增加机器人了,钉钉和企业微信机器人的使用很相似,都是使用webhook的方式来进行实现的,话不多说,咱们先配置机器人,然后再上代码。

     

    1.在企业微信的聊天群中增加机器人

    注意:目前只能在聊天群中添加机器人,所以我当时的做法是,先拉一个同事进群,然后再让他退群,具体步骤如下

     

    这个webhook地址就是一会要发送的地址,添加后的效果如下所示

    如何后续忘了这个webhook地址,可以右键机器人然后再次查看刚才的webhook地址

    不多说了,上面做那么多都是为了添加一个机器人,然后得到这个机器人绑定的webhook地址,下面开始上代码。

    import java.util.concurrent.TimeUnit;
    
    import okhttp3.MediaType;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.RequestBody;
    import okhttp3.Response;
    
    /**
    * @author 作者
    * @version 创建时间:2019年3月20日 下午4:27:36
    * 类说明
    */
    public class Test {
    	
    	public static void main(String[] args) throws Exception {
            //这里写刚才配置的Webhook地址
    		String url = "https://qyapi.weixin.qq.com/asdasdasdasds/.....";
    		String reqBody ="{" + 
    				"    \"touser\":\"12345\"," + 
    				"    \"msgtype\":\"text\"," + 
    				"    \"agentid\":1," + 
    				"    \"text\":{" + 
    				"        \"content\":\"小白可以发消息了,公司班车快到了,大家快准备出发吧 !!!" + 
    				" \"safe\":1" + 
    				"}";
    		
    		OkHttpClient client = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS)// 设置连接超时时间
    				.readTimeout(20, TimeUnit.SECONDS)// 设置读取超时时间
    				.build();
    		MediaType contentType = MediaType.parse("application/json; charset=utf-8");
    		RequestBody body = RequestBody.create(contentType, reqBody);
    		Request request = new Request.Builder().url(url).post(body).addHeader("cache-control", "no-cache").build();
    		Response response = client.newCall(request).execute();
    		byte[] datas = response.body().bytes();
    		String respMsg = new String(datas);
    		System.out.println(respMsg);
    	}
    }

    效果如下所示

    这样就发送成功了,大家可以去试试,虽然简单,但是很实用

    其实,机器人支持的数据格式有很多种,大家可以去探索下,这里就不再赘述了。

    展开全文
  • 基于Python实现企业微信机器人发送消息(文本类型消息、Markdown 类型消息、图文类型消息),实现自动化,多样化。
  • 企业微信机器人说到底就是一个webhook地址,你也可以看成一个URL,而利用企业微信机器人发送图片实则就是向服务器发送post请求,再将响应数据发送到webhook地址,以下是我爬取 彼岸图网(http://pic.netbian.com)的...
  • 企业微信机器人实现 前言: 企业微信有很好的机器人api说明,我们只需要按照如下操作即可(调用三方 一定要熟读三方api,比网上乱搜来的实惠) 实战三部曲: 1.获取一个企业微信群(新建,或已存在) 2.手机端...
  • 主要介绍了Python实现企业微信机器人每天定时发消息实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • WeChaty 实现企业微信机器人 初识Wechaty 微信个人号功能非常强大和灵活,是一个非常适合用来做ChatBot的载体。它可以灵活不受限制的发送语音短信、视频、图片和文字,支持多人群聊。但是使用微信个人微信号作为Chat...
  • 主要介绍了简单用VBS调用企业微信机器人发定时消息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Web 云开发作为企业微信机器人教程 当我们企业微信的机器人碰上云开发会擦出怎样的火花?我们今天来做一个通过云函数来定时向企业微信群内推送消息 开发前准备 首先我们准备工具 企业微信 @cloudbase/cli node.js ...
  • 企业微信机器人图片发送: # -*- coding:utf-8 -*- import requests import base64 import hashlib def wx_image(image): with open(image, 'rb') as file: #转换图片成base64格式 data = file.read() encode...
  • 企业微信机器人提醒功能实现说明 本文档主要讲解企业微信机器人的提醒功能的在window下的实现方法,主要内容包括机器人的创建,CURL工具使用环境的搭建和最终实现消息提醒功能三个主要模块。企业微信机器人可实现...
  • python企业微信机器人发送文件 import requests #传入文件 def post_file(id_url,wx_url,file): data = {'file': open(file,'rb')} # 请求id_url(将文件上传微信临时平台),返回media_id # id_url = '...
  • 通过定时触发器,可以简单快速地定制一个企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,还能实现定时推送新闻、天气,甚至是监控告警的小功能。 使用企业微信机器人 在企业微信中,选择添加机器人: ...
  • 监控或收集企业微信消息 自动消息推送 聊天机器人 通过企业微信远程控制你的设备 测试可以使用语言有C/C++,C#,易语言,Python, Java, Go, NodeJs, PHP, VB, Delphi。 目前支持的企业微信PC版本是3.0.27.2701, 使用...
  • curl 下载:curl下载地址 (丢在windows path...企业微信机器人配置 curl -i -X POST -H "Content-type":"application/json;charset=utf-8" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\" 测试 \"}}" https...
  • 【Java】企业微信机器人自动发送群消息 先在群里添加机器人,然后获取机器人的webhook地址: 假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa 2.有...
  • wx_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=01e4c4ad-c439-49cd-bef4-XXXXXXX" # 企业微信机器人webhook地址 send_message = "发送的消息内容" def send_msg(content): """艾特全部,并...
  • 调用企业微信机器人发通知,中文乱码 解决方案: json.dumps(datas) 修改为 json.dumps(datas, ensure_ascii=False).encode('utf-8') 企业微信机器人通知源码如下: # -*- coding:utf-8 -*- ''' Description: ...
  • Shell 企业微信机器人发送告警

    千次阅读 2020-06-24 09:22:43
    #将下面的webhook地址替换成你的企业微信机器人地址,$1为告警消息 $2为@人的手机号 $2可以为空 cat > $0.msg << EOF curl '...
  • 介绍 wxwork_pc_api 使用HOOK技术将核心功能封装成dll,并提供简易的接口给支持调用dll的语言使用。 你可以通过扩展 wxwork_...目前支持的企业微信PC版本是3.0.14.1205, 使用api前,先这里下载并安装WXWork_3.0.14.1205
  • 最近需要定时提示同事分享文章等,因此做了一个企业微信机器人定时发送消息。 官网指导文档: 群机器人配置说明 发送应用消息 实战 1.根据文档里的JSON格式,我们先定义要用到的消息实体对象和枚举类。 (1) Message ...
  • 求助大神,现在想用企业微信机器人发送消息,但是在网上找到的教程不知道怎么改,小白表示看不懂,,还请大神帮助。。企业微信机器人 地址 ...
  • Python开发 之 企业微信机器人每天定时发消息实例 原创沙振宇 最后发布于2020-02-24 17:29:12 阅读数 8962 收藏 原力计划 展开 文章目录 1、背景 2、企业微信API 3、想法 4、效果 5、源代码 6、Github源码分享 7、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 592
精华内容 236
关键字:

企业微信机器人