Fujj 发表于 2022-4-1 09:00

企业微信机器人,可以直接调用……

本帖最后由 Fujj 于 2022-4-1 09:05 编辑

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

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)




使用方法:

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')

知心 发表于 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

收藏了以后可能会用到
页: [1] 2 3 4 5 6
查看完整版本: 企业微信机器人,可以直接调用……