利用Python制作微信机器人(一)

双十一时候,阿里云服务器打折。于是直接买了三年的阿里云服务器。自己也明白有一个云服务器说白了就是有一个公网IP+7*24h不关机的电脑。但买完服务器后,就不知道用这服务器来做点什么炫酷的事情了。突然想到,最近一直在学python,我可以用python做一些自动化的事情。后来在网上看有人用python做了个微信自动化聊天的工具。但是这个工具是通过调用网页版微信api来进行通信的,而现在微信网页版已经不能使用了,所以这些api也就失效了。后来发现企业版微信是个神器,可以用企业微信来做一个自动回复的机器人。经过两天时间的摸索,终于做出了雏形。话不多说,先放成果。
在这里插入图片描述

1.简述

这个自动回复机器人,主要是用python的flask框架写了个微服务。给企业微信自定义应用发消息,会自动将消息转发到自己配置的后端,根据企业微信提供的解码算法,可以拿到所发的消息,再根据所发的消息进行相关回复,并将回复进行加密返回。

2.申请企业微信

https://work.weixin.qq.com/

在这里插入图片描述

3.创建应用

然后 应用管理 - 应用 - 自建
在这里插入图片描述
比如新建了个应用
在这里插入图片描述
20221107更新:
目前要通过api接口给企微发消息的话,需要给调用api的主机增加白名单,在应用配置界面下方有白名单配置。只有配置了白名单的ip才能调用此接口。

4.编写脚本

记住自己的AgentId 和Secret ,在上方我的企业栏里
在这里插入图片描述
下面有个企业id
在这里插入图片描述
也记住这个id,然后按照下方的代码填入相应的id即可

def send2wechat(message):
    AgentId = 'xxxxx'
    Secret = 'xxxxx'
    CompanyId = 'xxxxx'
    # 通行密钥
    ACCESS_TOKEN = None
    # 如果本地保存的有通行密钥且时间不超过两小时,就用本地的通行密钥
    if os.path.exists('ACCESS_TOKEN.txt'):
        txt_last_edit_time = os.stat('ACCESS_TOKEN.txt').st_mtime
        now_time = time.time()
        if now_time - txt_last_edit_time < 7200:  # 官方说通行密钥2小时刷新
            with open('ACCESS_TOKEN.txt', 'r') as f:
                ACCESS_TOKEN = f.read()
                # print(ACCESS_TOKEN)
    # 如果不存在本地通行密钥,通过企业ID和应用Secret获取
    if not ACCESS_TOKEN:
        r = requests.post(
            f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CompanyId}&corpsecret={Secret}').json()
        ACCESS_TOKEN = r["access_token"]
        # print(ACCESS_TOKEN)
        # 保存通行密钥到本地ACCESS_TOKEN.txt
        with open('ACCESS_TOKEN.txt', 'w', encoding='utf-8') as f:
            f.write(ACCESS_TOKEN)
    # 要发送的信息格式
    data = {
        "touser": "@all",
        "msgtype": "text",
        "agentid": f"{AgentId}",
        "text": {"content": f"{message}"}
    }
    # 字典转成json,不然会报错
    data = json.dumps(data)
    # 发送消息
    r = requests.post(
        f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={ACCESS_TOKEN}', data=data)
    # print(r.json())

此段代码参考: https://www.jianshu.com/p/99f706f1e943

这样运行这个脚本就可以给我们自己的微信发消息了
在这里插入图片描述
下一节来教学如何给这个应用发消息,并且后端可以接收到消息。

  • 5
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
要搭建一个企业微信机器人,您可以按照以下步骤进行: 1. 首先,您需要在企业微信后台创建一个自定义机器人。登录企业微信管理后台,进入“应用与小程序”页面,在“自建”应用中创建一个新的应用,并启用机器人功能。 2. 获取机器人的 Webhook 地址。在机器人的应用详情页面,找到“Webhook”选项,并复制生成的地址。 3. 使用 Python 的 requests 库发送消息到机器人的 Webhook 地址。您可以在 Python 中编写一个函数,使用 requests 库发送 POST 请求,并将消息内容以 JSON 格式传递给机器人。 4. 在函数中,您可以构建要发送的消息内容,包括文本、链接、图片等。具体的消息格式可以参考企业微信提供的文档。 5. 调用函数发送消息。您可以在需要发送消息的地方调用这个函数,将要发送的内容作为参数传递给函数即可。 以下是一个简单的示例代码: ```python import requests import json def send_message(webhook_url, message): headers = {'Content-Type': 'application/json'} data = { 'msgtype': 'text', 'text': { 'content': message } } response = requests.post(webhook_url, headers=headers, data=json.dumps(data)) return response.text # 调用发送消息的函数 webhook_url = 'YOUR_WEBHOOK_URL' message = 'Hello, Enterprise WeChat!' response = send_message(webhook_url, message) print(response) ``` 在上述代码中,`send_message` 函数会发送一条文本消息到指定的 Webhook 地址。您可以根据需要修改消息类型、内容和其他参数。 记得将 `'YOUR_WEBHOOK_URL'` 替换为您自己的机器人 Webhook 地址。 希望这能帮助到您!如果您有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值