精华内容
下载资源
问答
  • 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<----------------

    展开全文
  • Python企业微信机器人

    2019-11-15 17:20:29
    # coding=gbk ...#文字(text)机器人 def tony_bot_txt(boturl): storename='株洲' amount=12345.5 headers={"Content-Type":"text/plain"} msg="门店:{}\n销售额:{}元".format(storename,str(amou...
    # coding=gbk
    import requests
    
    #文字(text)机器人
    def tony_bot_txt(boturl):
        storename='株洲'
        amount=12345.5
        headers={"Content-Type":"text/plain"}
        msg="门店:{}\n销售额:{}元".format(storename,str(amount))
        data={
    
            "msgtype": "text",
    
            "text": {
            "content": msg,
    
            "mentioned_list":["tony","@all"]
            }}
        res=requests.post(url=boturl,headers=headers,json=data)
        print(res.text)
    
    #文字标记(markdown)机器人
    def tony_bot_txt_markdown(boturl):
        weather="下雨"
        temperature="20度"
        headers={"Content-Type":"text/plain"}
        msg="天气:<font color=\"info\">{}</font> \n 气温:<font color=\"warning\">{}</font>".format(weather,temperature)
        data={
            "msgtype": "markdown",
     
            "markdown": {
    
            "content": msg
            }
    }
        res=requests.post(url=boturl,headers=headers,json=data)
        print(res.text)
    
    
    #带图片的机器人
    def tony_bot_img(boturl):
        num=10
        money=1002.5
        headers={"Content-Type":"text/plain"}
        msg="数量:{}\n金额:{}元".format(str(num),str(money))
        data={
            "msgtype": "news",
            "news": {
     
            "articles" : [
    {
     
                 "title" : "庆祝新中国成立70周年",
    
                 "description" : "新中国70周年的阅兵仪式,欢迎收看!",
                 "url" : "https://www.baidu.com",
    
                 "picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"
    
                 }]
    }
    
        }
        res=requests.post(url=boturl,headers=headers,json=data)
        print(res.text)
    #测试的企业微信机器人
    tony_bot_txt('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx')
    tony_bot_txt_markdown('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx')
    tony_bot_img('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx')
    

     

    pip install -i https://pypi.douban.com/simple pyinstaller
    pyinstaller -F -w -i xxx.ico yy.py
    在dist目录下面生成exe文件

    展开全文
  • python企业微信机器人发送文件 import requests #传入文件 def post_file(id_url,wx_url,file): data = {'file': open(file,'rb')} # 请求id_url(将文件上传微信临时平台),返回media_id # id_url = '...
    python企业微信机器人发送文件
    import requests
    
    
    #传入文件
    def post_file(id_url,wx_url,file):
        data = {'file': open(file,'rb')}
        # 请求id_url(将文件上传微信临时平台),返回media_id
        # id_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=xxx&type=file'
        response = requests.post(url=id_url, files=data)
        json_res = response.json()
        media_id = json_res['media_id']
    
        data = {"msgtype": "file",
                 "file": {"media_id": media_id}
                }
        result = requests.post(url=wx_url,json=data)
        return(result)
    
    
    file1 = 'D:\\Py-thon\\pyhon-yunwei\\IP.txt'		#文件路径
    id_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=b40***a-c**-4***-844e-d9******88f&type=file'	#把机器人的key放入
    wx_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b40****-c***-45**-844e-d9******4***f'	#把机器人的key放入
    post_file(id_url, wx_url, file=file1)
    
    print('发送完成')
    
    运行结果:

    在这里插入图片描述

    展开全文
  • 企业微信机器人图片发送: # -*- coding:utf-8 -*- import requests import base64 import hashlib def wx_image(image): with open(image, 'rb') as file: #转换图片成base64格式 data = file.read() encode...

    企业微信机器人图片发送:

    # -*- coding:utf-8 -*-
    import requests
    import base64
    import hashlib
    
    
    def wx_image(image):
        
        with open(image, 'rb') as file:                     #转换图片成base64格式
            data = file.read()
            encodestr = base64.b64encode(data)
            image_data = str(encodestr, 'utf-8')
            
        with open(image, 'rb') as file:                   #图片的MD5值
            md = hashlib.md5()
            md.update(file.read())
            image_md5 = md.hexdigest()
            
        url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=********-cebd-4506-844e-d94edf******"                                        #填上机器人Webhook地址 
        headers = {"Content-Type": "application/json"}
        data = {
            "msgtype": "image",
            "image": {
                "base64": image_data,
                "md5": image_md5
            }
        }
        result = requests.post(url, headers=headers, json=data)
        return result
        
    
    wx_image('D:\\Py-thon\\pyhon-yunwei\\03.png')	#传入图片路径
    

    输出结果:

    在这里插入图片描述

    展开全文
  • 主要介绍了Python开发企业微信机器人每天定时发消息实例,需要的朋友可以参考下
  • 基于Python实现企业微信机器人发送消息(文本类型消息、Markdown 类型消息、图文类型消息),实现自动化,多样化。
  • 企业微信机器人实现 前言: 企业微信有很好的机器人api说明,我们只需要按照如下操作即可(调用三方 一定要熟读三方api,比网上乱搜来的实惠) 实战三部曲: 1.获取一个企业微信群(新建,或已存在) 2.手机端...
  • 主要介绍了Python实现企业微信机器人每天定时发消息实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • wx_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=01e4c4ad-c439-49cd-bef4-XXXXXXX" # 企业微信机器人webhook地址 send_message = "发送的消息内容" def send_msg(content): """艾特全部,并...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 调用企业微信机器人发通知,中文乱码 解决方案: json.dumps(datas) 修改为 json.dumps(datas, ensure_ascii=False).encode('utf-8') 企业微信机器人通知源码如下: # -*- coding:utf-8 -*- ''' Description: ...
  • 自从企业微信添加了群机器人功能,我们现在使用机器人发送测试报告,最开始使用的是文本类型,但是感觉没有markdown的显示好看,索性就更换成了markdown类型的 官网上介绍的还可以发送图片和图文等类型,但是还没...
  • 利用python进行企业微信机器人自动发送消息

    万次阅读 热门讨论 2019-06-18 19:23:43
    def test_004_robot(self): headers = {"Content-Type": "text/plain"} s="卖品,打印码:{},验证码{}".format({str(printCode)},{str(verifyCode)}) data = { "msgtype": "text", "text": { ...
  • 设置机器人信息4.编写测试文件5.访问请求,成功 0.参考文档 https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq/e9d991e2 1.创建一个群 2.设置群助手 点击群设置——>智能群助手——>添加机器人——>...
  • python3 企业微信机器人发送图片

    千次阅读 2020-06-25 20:28:54
    'utf-8') with open(image, 'rb') as file: #图片的MD5值 md = hashlib.md5() md.update(file.read()) image_md5 = md.hexdigest() url = "https://" #填上机器人Webhook...
  • 前言:使用企业微信app端,在群里添加robot并命名;PC端点击robot可编辑相关资料。 正文 1.调用企业微信机器人API-自动发送文字。 1.1
  • Python开发 之 企业微信机器人每天定时发消息实例

    万次阅读 多人点赞 2020-02-24 17:29:12
    文章目录1、背景2、企业微信API3、想法4、效果5、源代码6、Github源码分享7、具体步骤7.1、创建一个群7.2、创建好后,添加一个群机器人7.3、给机器人起名字、添加头像7.4、创建好后,复制Webhook地址后,点完成7.5、...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 140
精华内容 56
关键字:

python企业微信机器人

python 订阅