吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7707|回复: 53
收起左侧

[Python 转载] 企业微信机器人,可以直接调用……

  [复制链接]
Fujj 发表于 2022-4-1 09:00
本帖最后由 Fujj 于 2022-4-1 09:05 编辑

封装了一些企业微信机器人的调用方法:发送文字、发送图片、发送文件

[Python] 纯文本查看 复制代码
import requests
import hashlib
import base64

class WeChatBot:

    def __init__(self,key):
        self.key = key
        self.wxurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=' + key

    def send_file(self,name,filepath):
        """
        :param name: 发送的文件名字,用于在企业微信上展示的
        :param filepath: 本地实际文件路径
        """
        fl = open(filepath, 'rb')
        files = {'files': (name, fl, 'application/octet-stream', {'Expires': '0'})}
        url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key='+self.key+'&type=file'
        req = requests.post(url, files=files).json()
        # 把文件上送至企业微信服务器,生成media_id
        if req['media_id'] is not None:
            send_json = {
                "msgtype": "file",
                "file": {
                    "media_id": req['media_id']
                }
            }
            requests.post(send_url=self.wxurl, json=send_json)

    def send_message(self,content='',mentioned_list=[],mentioned_mobile_list=[] ):
        """
        此方法用于发送文字消息
        :param content: 文字内容
        :param mentioned_list: (不是必填项)userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list
        :param mentioned_mobile_list:(不是必填项)手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人
        """
        data = {
            "msgtype": "text",
            "text": {
                "content": content,
                "mentioned_list":mentioned_list,
                "mentioned_mobile_list":mentioned_mobile_list
            }
        }
        res = requests.post(self.wxurl,json=data).json()
        print(res)

    def send_img(self,filename):
        """
        此方法用于发送图片
        :param filename: 图片文件的路径
        """
        png = filename
        with open(png, "rb") as f:
            md = hashlib.md5(f.read())
            res1 = md.hexdigest()
        with open(png, "rb") as f:
            base64_data = base64.b64encode(f.read())
        im_json = {
            "msgtype": "image",
            "image": {
                "base64": str(base64_data, 'utf-8'),
                "md5": res1
            }
        }
        requests.post(self.wxurl, json=im_json)




使用方法:
[Python] 纯文本查看 复制代码
if __name__ == '__main__':
    bot = WeChatBot('3ee1db5e-3b11113-41d2-81f0-8243224fa5133d')
    bot.send_file(name='测试.xlsx',filepath='./world.xlsx')
    bot.send_message(content='1111',mentioned_list=['@all'])
    bot.send_img(filename='./world/img.png')


免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
Maserhe + 1 + 1 谢谢@Thanks!
lineulb + 1 + 1 我很赞同!
yany936 + 1 + 1 谢谢@Thanks!
OAOm + 1 + 1 谢谢@Thanks!
lfm333 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

  • · 好帖|主题: 550, 订阅: 87

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

知心 发表于 2022-4-1 10:31
企业微信群机器人,官方文档:https://open.work.weixin.qq.com/help2/pc/14931?person_id=1&is_tencent=
 楼主| Fujj 发表于 2022-5-10 17:54
gdcnjs 发表于 2022-5-10 14:56
今天成功了,可以发言了
不过不知道怎么添加定时提醒呢,这样到每天的10点,在群里面机器人发一句话 也不 ...

这个要自己再另外写逻辑了,我发的只是基础的调用功能
sgw1970 发表于 2022-4-1 09:07
yhzh 发表于 2022-4-1 09:12
感谢分享。。
zyqking 发表于 2022-4-1 09:18
个人微信能用吗?辛苦了
ynboyinkm 发表于 2022-4-1 09:19
zyqking 发表于 2022-4-1 09:18
个人微信能用吗?辛苦了

要企业微信才行!
lfm333 发表于 2022-4-1 09:34
感谢分享
Spa495 发表于 2022-4-1 09:37
这个得企业微信?
kexue8 发表于 2022-4-1 09:42
Spa495 发表于 2022-4-1 09:37
这个得企业微信?

是的,这两个相当于是不同的软体
Seanbj 发表于 2022-4-1 09:49
有成品没?求成品:内容可以根据自己需求导入。
wimotek 发表于 2022-4-1 09:50
收藏了  以后可能会用到
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 06:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表