吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

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

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

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

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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] 纯文本查看 复制代码
1
2
3
4
5
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!

查看全部评分

本帖被以下淘专辑推荐:

  • · 好帖|主题: 556, 订阅: 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, 2025-5-22 00:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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